Page 1 sur 1
[R] UDF PDF problème
Posté : mar. 29 avr. 2014 09:31
par Ks10
Bonjour à tous !
J'utilise l'UDF "MPDF_UDF.au3" pour générer mon fichier.
Cependant voilà j'ai plusieurs soucis :
- comment faire pour que le texte passe à la ligne quand il rencontre le bord de la page ?
- Comment faire pour que le code crée automatiquement une nouvelle page pdf si le texte arrive en bas de page ?
Merci d'avance
EDIT : J'ai rajouter le fichier en pièce jointe.
Re: [..] UDF PDF problème
Posté : mar. 29 avr. 2014 15:23
par Ks10
Personne aurait une solution s'il vous plait ?
EDIT : J'ai trouver une solution ... Ce n'est pas ce que je recherchez mais cela fera temporairement l'affaire.
Je le partage pour ceux qui en n'auront peut être besoin :
J'ai trouver une fonction qui envoie le contenu d'un fichier texte vers le fichier pdf.
Voici la fonction :
► Afficher le texte
Code : Tout sélectionner
Func _Txt2PDF($sFile, $sFontAlias)
Local $hFile = FileOpen($sFile)
Local $sText = FileRead($hFile)
FileClose($hFile)
Local $iUnit = Ceiling(_GetUnit())
Local $iX = 2
Local $iY = Ceiling(_GetPageHeight() / _GetUnit()) - 1.5
Local $iPagina = Ceiling(_GetPageWidth() / $iUnit) - $iX
Local $iWidth = Ceiling($iPagina - $iX);, 1)
Local $lScale
Local $iRanduri = StringSplit($sText & @CRLF & @CRLF & @CRLF, @CRLF, 3)
Local $iHR = 0.5 * Ceiling($iY / (14.4 * $iUnit))
Local $iPages = Ceiling((UBound($iRanduri)) * $iHR / $iY)
Local $iNrRanduri = Ceiling(UBound($iRanduri) / $iPages)
For $j = 0 To $iPages - 1
_BeginPage()
For $i = 0 To $iNrRanduri - 1
Local $sLength = Round(_GetTextLength($iRanduri[$i + $j * $iNrRanduri], $sFontAlias, 12))
Local $iH = $iY - $iHR * ($i + 1)
Select
Case $iH < 1
_EndPage()
Case $i + $j * $iNrRanduri = UBound($iRanduri) - 1
_EndPage()
Return
Case $sLength > $iWidth - 1
$lScale = Ceiling($iWidth * 100 / $sLength)
_SetTextHorizontalScaling($lScale)
_DrawText($iX, $iH, $iRanduri[$i + $j * $iNrRanduri], $sFontAlias, 12, $PDF_ALIGN_LEFT, 0)
_SetTextHorizontalScaling(100)
Case Else
_DrawText($iX, $iH, $iRanduri[$i + $j * $iNrRanduri], $sFontAlias, 12, $PDF_ALIGN_LEFT, 0)
EndSelect
Next
Next
EndFunc ;==>_Txt2PDF
Cette fonction passe a la ligne automatiquement quelque soit la longueur du texte. Seul inconvénient il prend une page entière et je n'ai pas trouver comment afficher d'autre donnée dans la même page et evidemment il faut passer par un fichier texte moche et non formaté... mais j'arrive au résultat que je veux donc tant pis je le prend comme ça.
A bientôt.