Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: 1.92.du 25 Février 2013 - extension de PrinterFunction Lun 25 Fév 2013 - 15:18 | |
| Nouvelle version: KGF.dll V1.92 du 25 Février 2013Cette version ajoute le code 11 à PrinterFunction: 11 = imprimer le texte txt$ dans un rectangle, avec renvoi à la ligne opt1% = adr(txt$) opt2% = len(txt$) opt3% = (largeur*32768 + hauteur)*2 + option de fond option de fond 0 = fond opaque 1 = fond transparent Ceci marche comme le code 10, sauf que le code 10 tronque tout ce qui dépasse, à droite et en bas. Et voici le programme de démo adapté à cela: - Code:
-
' demo_PrintTextInRectangle.bas
label imprimer
dim txt$ dlist 1
option 11 : top 11,20 : left 11,20 : width 11,400 caption 11,"Le texte à imprimer est dans un DLIST/LIST/MEMO" option 12 : top 12,50 : left 12,20 : width 12,400 caption 12,"Le texte à imprimer est dans un string, imprimer ligne par ligne" option 13 : top 13,80 : left 13,20 : width 13,400 caption 13,"Le texte à imprimer est dans string, imprimer avec renvoi à la ligne" button 14 : top 14,110 : left 14,100 : caption 14,"Imprimer" on_click 14,imprimer mark_on 11
KGF_initialize("KGF.dll")
end
imprimer: SelectWindowsPrinter() PrinterManagerStartDoc()
if checked(11)=1 creer("a") PrinterFunctionStyle("Arial",10,0,0,0,0,0,0,0) PrintTextInRectangleFromDList(1,10,10,750,640) creer("b") PrinterFunctionStyle("Arial",10,255,0,0,0,0,0,0) PrintTextInRectangleFromDList(1,1650,250,750,800) creer("c") PrinterFunctionStyle("Arial",10,0,255,0,0,0,0,0) PrintTextInRectangleFromDList(1,820,380,750,1500) creer("d") PrinterFunctionStyle("Arial",10,0,0,255,0,0,0,0) PrintTextInRectangleFromDList(1,450,410,750,405) else if checked(12)=1 creer("a") PrinterFunctionStyle("Arial",10,0,0,0,0,0,0,0) PrintTextInRectangleFromString(txt$,10,10,750,640) creer("b") PrinterFunctionStyle("Arial",10,255,0,0,0,0,0,0) PrintTextInRectangleFromString(txt$,1650,250,750,800) creer("c") PrinterFunctionStyle("Arial",10,0,255,0,0,0,0,0) PrintTextInRectangleFromString(txt$,820,380,750,1500) creer("d") PrinterFunctionStyle("Arial",10,0,0,255,0,0,0,0) PrintTextInRectangleFromString(txt$,450,410,750,405) else creer("a") PrinterFunctionStyle("Arial",10,0,0,0,0,0,0,0) PrintTextInRectangleFromStringWrap(txt$,10,10,750,640) creer("b") PrinterFunctionStyle("Arial",10,255,0,0,0,0,0,0) PrintTextInRectangleFromStringWrap(txt$,1650,250,750,800) creer("c") PrinterFunctionStyle("Arial",10,0,255,0,0,0,0,0) PrintTextInRectangleFromStringWrap(txt$,820,380,750,1500) creer("d") PrinterFunctionStyle("Arial",10,0,0,255,0,0,0,0) PrintTextInRectangleFromStringWrap(txt$,450,410,750,405) end_if end_if
PrinterManagerEndDoc()
message "Terminé." return
sub creer(x$) dim_local i%, s$, s1$ s$ = "" txt$ = "" clear 1 if x$="c" s$ = "Gallia est omnis divisa in partes tres, quarum unam " item_add 1,s$ s1$ = "incolunt Belgae, aliam Aquitani, tertiam qui ipsorum " item_add 1,s1$ s$ = s$ + s1$ s1$ = "lingua Celtae, nostra Galli appellantur. Hi omnes " item_add 1,s1$ s$ = s$ + s1$ s1$ = "lingua, institutis, legibus inter se differunt. Gallos " item_add 1,s1$ s$ = s$ + s1$ s1$ = "ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana " item_add 1,s1$ s$ = s$ + s1$ s1$ = "dividit. Horum omnium fortissimi sunt Belgae, propterea " item_add 1,s1$ s$ = s$ + s1$ s1$ = "quod a cultu atque humanitate provinciae longissime absunt, " item_add 1,s1$ s$ = s$ + s1$ s1$ = "minimeque ad eos mercatores saepe commeant atque ea quae " item_add 1,s1$ s$ = s$ + s1$ s1$ = "ad effeminandos animos pertinent important, proximique " item_add 1,s1$ s$ = s$ + s1$ s1$ = "sunt Germanis, qui trans Rhenum incolunt, quibuscum " item_add 1,s1$ s$ = s$ + s1$ s1$ = "continenter bellum gerunt. Qua de causa Helvetii quoque " item_add 1,s1$ s$ = s$ + s1$ s1$ = "reliquos Gallos virtute praecedunt, quod fere cotidianis " item_add 1,s1$ s$ = s$ + s1$ s1$ = "proeliis cum Germanis contendunt, cum aut suis finibus " item_add 1,s1$ s$ = s$ + s1$ s1$ = "eos prohibent aut ipsi in eorum finibus bellum gerunt. " item_add 1,s1$ s$ = s$ + s1$ s1$ = "Eorum una, pars, quam Gallos obtinere dictum est, initium " item_add 1,s1$ s$ = s$ + s1$ s1$ = "capit a flumine Rhodano, continetur Garumna flumine, " item_add 1,s1$ s$ = s$ + s1$ s1$ = "Oceano, finibus Belgarum, attingit etiam ab Sequanis et " item_add 1,s1$ s$ = s$ + s1$ s1$ = "Helvetiis flumen Rhenum, vergit ad septentriones. Belgae " item_add 1,s1$ s$ = s$ + s1$ s1$ = "ab extremis Galliae finibus oriuntur, pertinent ad " item_add 1,s1$ s$ = s$ + s1$ s1$ = "inferiorem partem fluminis Rheni, spectant in septentrionem " item_add 1,s1$ s$ = s$ + s1$ s1$ = "et orientem solem. Aquitania a Garumna flumine ad Pyrenaeos " item_add 1,s1$ s$ = s$ + s1$ s1$ = "montes et eam partem Oceani quae est ad Hispaniam pertinet; " item_add 1,s1$ s$ = s$ + s1$ s1$ = "spectat inter occasum solis et septentriones." item_add 1,s1$ s$ = s$ + s1$ txt$ = s$ else for i%=1 to 20 s$ = s$ + x$ + str$(i%) + " ": ' string$(5,x$) item_add 1,s$ txt$ = txt$ + s$ + chr$(13) + chr$(10) next i% end_if end_sub
#INCLUDE "KGF_SUB.bas"
J'imprime toujours les 4 rectangles de texte. Mais chaque rectangle a maintenant une autre couleur de texte, et le rectangle 3 (prévu pour la lettre c) a été remplacé par le texte complet du tome 1 "De Bello Gallico" de Cesar. On y voit parfaitement le traitement de troncature (clipping) et renvoi à la ligne (word-wrap). Et l'exemple suivant montre l'écriture dans un rectangle avec renvoi à la ligne dans les 4 cas, avec le même texte en latin pour chaque rectangle, mais avec des couleurs, positions et dimensions différentes. Le texte vert montre le texte en sa totalité, les autres sont tronqués par les dimensions des rectangles: - Code:
-
' demo_PrintTextInRectangle_WordWrap.bas
label imprimer
dim txt$
button 14 : top 14,110 : left 14,100 : caption 14,"Imprimer" on_click 14,imprimer
KGF_initialize("KGF.dll") creer()
end
imprimer: SelectWindowsPrinter() PrinterManagerStartDoc()
PrinterFunctionStyle("Arial",10,0,0,0,0,0,0,0) PrintTextInRectangleFromStringWrap(txt$,10,10,750,640) PrinterFunctionStyle("Arial",10,255,0,0,0,0,0,0) PrintTextInRectangleFromStringWrap(txt$,2400,250,1200,800) PrinterFunctionStyle("Arial",10,0,255,0,0,0,0,0) PrintTextInRectangleFromStringWrap(txt$,1200,380,2300,2500) PrinterFunctionStyle("Arial",10,0,0,255,0,0,0,0) PrintTextInRectangleFromStringWrap(txt$,450,410,750,405)
PrinterManagerEndDoc()
message "Terminé." return
sub creer() dim_local s$, s1$ s$ = "" txt$ = "" s$ = "Gallia est omnis divisa in partes tres, quarum unam " s1$ = "incolunt Belgae, aliam Aquitani, tertiam qui ipsorum " s$ = s$ + s1$ s1$ = "lingua Celtae, nostra Galli appellantur. Hi omnes " s$ = s$ + s1$ s1$ = "lingua, institutis, legibus inter se differunt. Gallos " s$ = s$ + s1$ s1$ = "ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana " s$ = s$ + s1$ s1$ = "dividit. Horum omnium fortissimi sunt Belgae, propterea " s$ = s$ + s1$ s1$ = "quod a cultu atque humanitate provinciae longissime absunt, " s$ = s$ + s1$ s1$ = "minimeque ad eos mercatores saepe commeant atque ea quae " s$ = s$ + s1$ s1$ = "ad effeminandos animos pertinent important, proximique " s$ = s$ + s1$ s1$ = "sunt Germanis, qui trans Rhenum incolunt, quibuscum " s$ = s$ + s1$ s1$ = "continenter bellum gerunt. Qua de causa Helvetii quoque " s$ = s$ + s1$ s1$ = "reliquos Gallos virtute praecedunt, quod fere cotidianis " s$ = s$ + s1$ s1$ = "proeliis cum Germanis contendunt, cum aut suis finibus " s$ = s$ + s1$ s1$ = "eos prohibent aut ipsi in eorum finibus bellum gerunt. " s$ = s$ + s1$ s1$ = "Eorum una, pars, quam Gallos obtinere dictum est, initium " s$ = s$ + s1$ s1$ = "capit a flumine Rhodano, continetur Garumna flumine, " s$ = s$ + s1$ s1$ = "Oceano, finibus Belgarum, attingit etiam ab Sequanis et " s$ = s$ + s1$ s1$ = "Helvetiis flumen Rhenum, vergit ad septentriones. Belgae " s$ = s$ + s1$ s1$ = "ab extremis Galliae finibus oriuntur, pertinent ad " s$ = s$ + s1$ s1$ = "inferiorem partem fluminis Rheni, spectant in septentrionem " s$ = s$ + s1$ s1$ = "et orientem solem. Aquitania a Garumna flumine ad Pyrenaeos " s$ = s$ + s1$ s1$ = "montes et eam partem Oceani quae est ad Hispaniam pertinet; " s$ = s$ + s1$ s1$ = "spectat inter occasum solis et septentriones." s$ = s$ + s1$ txt$ = s$ end_sub
#INCLUDE "KGF_SUB.bas"
| |
|