Page 1 sur 1
[R] fonction _DrawText et caractères accentués
Posté : ven. 03 févr. 2012 18:04
par novembrezoulou
Bonjour,
Le script
► Afficher le texte
Code : Tout sélectionner
#include <MPDF_UDF.au3>
;set the properties for the pdf
_SetTitle("Asso volants")
_SetSubject("Facture")
_SetKeywords("f")
_OpenAfter(True);open after generation
_SetUnit($PDF_UNIT_CM)
_SetPaperSize("A4")
_SetZoomMode($PDF_ZOOM_CUSTOM,90)
_SetOrientation($PDF_ORIENTATION_PORTRAIT)
_SetLayoutMode($PDF_LAYOUT_CONTINOUS)
;initialize the pdf
_InitPDF(@ScriptDir & "\essai_facture.pdf")
;=== load resources used in pdf ===
;images:
_LoadResImage("taxi", @ScriptDir & "\logo.jpg")
;_LoadFontStandard("_Times", $PDF_FONT_STD_TIMES)
_LoadFontTT("_Arial", $PDF_FONT_ARIAL)
_LoadFontTT("_TimesT", $PDF_FONT_TIMES)
_LoadFontTT("_Calibri", $PDF_FONT_CALIBRI)
_LoadFontTT("_Garamond", $PDF_FONT_GARAMOND)
;_LoadFontTT("_Symbol", $PDF_FONT_SYMBOL)
;=== create objects that are used in multiple pages ===
;create a header on all pages, except the first:
_StartObject("Entete", $PDF_OBJECT_ALLPAGES);NOTFIRSTPAGE)
;insert a image already loaded
_InsertImage("taxi", 0.4, 23, 4, 6)
;change the colour of the text that follows
_SetColourFill(0x323232)
;stretch it a bit, down to 90%
_SetTextHorizontalScaling(100)
;and begin writting some data
_SetColourFill("0x0000FF"); 0xFF00FF=rose 0x0000FF=bleu
_DrawText(12, 28, "Association les Volants", "_Arial", 24, $PDF_ALIGN_CENTER);StringUpper("Et adipiscing nec nisi elementum natoque!")
_DrawText(12, 27, "Accociation loi 1901", "_Arial", 12, $PDF_ALIGN_CENTER)
_DrawText(12, 25.5, "5, rue Victor Hugo", "_Arial", 14, $PDF_ALIGN_CENTER)
_DrawText(12, 24.5, "75011, PARIS", "_Arial", 14, $PDF_ALIGN_CENTER)
_DrawText(12, 23.5, "Téléphone / Fax / Répondeur : +33-1 23 45 67 89", "_Arial", 8, $PDF_ALIGN_CENTER)
;get the scalling back to default value
;_SetTextHorizontalScaling(100)
;and colour also
_SetColourFill(0)
;that's the end of our header!
_EndObject()
;start a page
_BeginPage()
_EndPage()
;then, finally, write the buffer to disk
_ClosePDFFile()
crée des (très grands) espaces entre le "é" et la lettre suivante, au point que seuls apparaissent
"Té--------------------------lé" sur le Pdf généré. (les tirets remplacent les espaces qui ne sont pas affichés en HTML !!!)
Je joins, en attaché, l'UDF
Merci
NovembreZoulou
Re: [Func] fonction _DrawText et caractères accentués
Posté : dim. 05 févr. 2012 09:48
par bob
Bonjour,
Sur mon ordi, je n'ai pas ce genre de 'comportement" : au contraire, il y a superposition de lettre(s) au-dessus du caractère accentué, à tel point que j'ai du changer la ligne
_DrawText(12, 23.5, "Téléphone / Fax / Répondeur : +33-1 23 45 67 89", "_Arial", 8, $PDF_ALIGN_CENTER) en
_DrawText(12, 23.5, "Té"&Chr(32)&Chr(32)&"lé"&Chr(32)&Chr(32)&"phone / Fax / Ré"&Chr(32)&Chr(32)&"pondeur : +33-1 23 45 67 89", "_Arial", 8, $PDF_ALIGN_CENTER)
(ajout de 2 espaces)
La réponse se trouve sans doute dans l'étude de l'UDF... (?)
Re: [Func] fonction _DrawText et caractères accentués
Posté : dim. 05 févr. 2012 19:52
par novembrezoulou
bob a écrit :
La réponse se trouve sans doute dans l'étude de l'UDF... (?)
Bonjour,
C'est ce que j'ai tenté mais je n'ai pas trouvé de réponse (Je ne suis que débutant en Autoit et pratique surtout le PHP)
Je suis allé sur le forum anglais. D'autres utilisateurs (non français) de cet UDF ont des problèmes du même ordre avec leur police nationale.
J'ai aussi essayé avec d'autres readers : Avec "FOXIT", j'ai le même affichage que vous et avec "Nitro", c'est presque correct.
Curieusement, seules les lettres "é" et "à" posent problème...
J'ai posté la question au concepteur de l'UDF. S'il me répond, je mettrai sa réponse en lien sur ce topic.
Re: [Func] fonction _DrawText et caractères accentués
Posté : lun. 06 févr. 2012 09:36
par bob
Sur le site autoit anglais ou allemand, on trouve d'autres fonctions (ou UDF ???) qui permettent de créer des page PDF sans avoir ce genre de problèmes.
Le fichier que j'ai renommé "autrepdfallemand" écrit 1 fichier méga.pdf dans le même dossier.
L'autre fichier est 1 fichier que j'ai bidouillé pour divers essais ( retrouver l'original sur le site anglais, sous 1 autre nom) et qui écrit 1 fichier : essaipdf2.pdf (toujours dans le même dossier).
Je pense qu'il y a d'autres"choses", mais il faudrait que je recherche davantage sur mon disque dur.
Pour le problème que vous avez, une réponse a déjà été apportée sur le site anglais :
"That's because the ANSI encoding of fonts in this UDF."
et dans l'UDF, on trouve ceci (???) :
__ToBuffer("<< /Type /Font /Subtype /Type1 /Name /" & $sAlias & " /BaseFont /" & $BaseFont & $sTemp & " /Encoding /WinAnsiEncoding >>")
Re: [Func] fonction _DrawText et caractères accentués
Posté : lun. 06 févr. 2012 11:13
par novembrezoulou
bob a écrit :et dans l'UDF, on trouve ceci (???) :
__ToBuffer("<< /Type /Font /Subtype /Type1 /Name /" & $sAlias & " /BaseFont /" & $BaseFont & $sTemp & " /Encoding /WinAnsiEncoding >>")
Merci, Bob, de ces recherches.
Les scripts joints sont bien plus courts et je vais les tester.
Entre temps, partant de votre info, j'ai modifié la ligne (incluse dans la fonction "_LoadFontStandard" de l'UDF) en
Code : Tout sélectionner
__ToBuffer("<< /Type /Font /Subtype /Type1 /Name /" & $sAlias & " /BaseFont /" & $BaseFont & $sTemp & " /Encoding /[b]WinIsoEncoding[/b] >>")
. Les tests ne sont pas plus concluants avec acrobat...
Re: [R] fonction _DrawText et caractères accentués
Posté : lun. 13 févr. 2012 14:03
par novembrezoulou
Le problème disparaissant avec "Nitro" je passe le topic en Résolu