Page 1 sur 1
Imprimer une variable qui récupère un editorgadget (RESOLU)
Publié : sam. 23/août/2008 12:00
par coxco
Salut
Voila je voudrais imprimer une variable qui récupère un editorgadget.
Le problème c'est que l'impression des retours chariot, se fait sous forme de caractère au lieu de sauter une ligne.
j'ai essayé avec
Code : Tout sélectionner
FindString(variable,Chr(13),0)
StringField(variable,1,Chr(13))
Pensez vous que c'est une bonne solution ?
Ou quoi d'autre ?
Merci

Publié : sam. 23/août/2008 12:24
par kernadec
bonjour
tu le met chr(13) dans ta variable
utilise left(variable,len(variable)-1)) pour ne pas l'imprimer
deja pour commencer.
je ne pense pas que l'ont doit mettre de chr(13)
avec les commandes d impression startprinting etc..
mais il faut gerer avec la resolution de l'imprimante et la police de caractere utilisée, les sauts de lignes dans une boucle,
pour etre compatible avec toute les imprimantes.
Publié : sam. 23/août/2008 12:50
par coxco
Je comprend ce que tu veux dire.
Mais je ne peux pas supprimer tous les retours ligne, si l'on saisit un retour ligne dans un editorgadget je voudrais le conserver et pouvoir le transcrire en saut de ligne à l'impression.
Publié : sam. 23/août/2008 12:57
par kernadec
tu les retire au cours de la copie dans une variable buffer pour imprimer
voila un exemple d'impression avec plusieurs lignes la commande impression est simple
a cette adresse j'ai poster ca:
http://www.purebasic.fr/french/viewtopic.php?t=8459
utilise acrobat distiller pour tester l'impression en fichier pdf
c'est moins cher que le papier
voila la routine d'impression
tu l'adapte a tes gadjets et hop!
Code : Tout sélectionner
Procedure xcm(x.f)
x = x * (PrinterPageWidth()/21) ; 21cm A4
ProcedureReturn x
EndProcedure
Procedure ycm(x.f)
x = x * (PrinterPageHeight()/29.7) ; 29,7cm A4
ProcedureReturn x
EndProcedure
yhaut = 300
xleft = 300
p=0
If PrintRequester()
If StartPrinting("Multipages av n°")
Font=ycm(((8*0.090)/2.5))
LoadFont(1,"Arial",Font)
If StartDrawing(PrinterOutput())
DrawingFont(FontID(1))
For n=0 To CountGadgetItems(1) ; le nombre de ligne ici
yhaut=yhaut+(Font*1.5)
DrawText(xleft,yhaut,GetGadgetItemText(1,n-1,0)) ; et ton texte gadget ici !
If yhaut>ycm(780*0.035)
p=p+1 ; 29.7cm/848pixels=0.035 - 21.0cm/600pixels=0.035
DrawText(xcm(500*0.035),ycm(800*0.035),Str(p)) ;numero de bas page droite
NewPrinterPage()
yhaut=300
EndIf
Next n
p=p+1
DrawText(xcm(500*0.035),ycm(800*0.035),Str(p)) ;numero de derniere page
StopDrawing()
EndIf
StopPrinting()
EndIf
EndIf
Publié : sam. 23/août/2008 14:34
par coxco
Ok merci pour ton aide