Produits
XFRX
Télécharger
Demo
Commander
Manuel
Licence
Contributions
PDF Library
Télécharger
Demo
Commander
Manuel
Licence
Contributions
Espace Clients
Contacts
Editeur
Distributeur
Divers
FAQ
Evénements
Liens

|
PDFL - Manuel
Chapitres : Installation | Utilisation de PDFL | Les
méthodes de la classe PDFL | Modifier des pages
générées par XFRX
Installation
Dé-zipper le fichier archive zip. Pour un aperçu rapide des possibilités lancez DEMOPDFL.PRG.
PDFL est composé de 3 fichiers :
- XFRX.APP - C'est l'application XFRX et PDFL
- HNDLIB.DLL - Cette librairie doit être dans le même répertoire que XFRX.APP
- ZLIB.DLL - Utilitaire de compression "freeware" (voir www.zlib.org pour plus d'information)
Utilisation de PDFL
|
Commencez par créer un objet PDFL : loDocument=evaluate([XFRX("PDFL#INIT")])
Si vous voulez utiliser PDFL avec XFRX pour mélanger des rapports de VFP avec des
pages produites par votre code PDFL, employez la méthode AttachToPDFDocument() de l'objet
XFRXSession pour rattacher au document existant.
Passez l'objet XFRXSession comme paramètre :
loDocument.attachToPDFDocument(loXFRXSession)
Si vous voulez utiliser PDFL indépendamment, appelez la méthode createDocument avec
en paramètre : le nom du fichier PDF à créer :
loDocument.createDocument("output.pdf")
Appelez la méthode newPage() au départ et la méthode endPage() à la fin de chaque
page.
La méthode NewPage() doit être appelée avant d'ajouter n'importe quel objet.
Si vous utilisez PDFL indépendamment, appeler la méthode finishDocument() pour fermer le
document :
loDocument.finishDocument()
Ne jamais appeler la méthode finishDocument() quand vous utilisez PDFL avec XFRX. |
Les méthodes de la classe PDFL
|
Structure du Document createDocument(tcFileName)
| |
Créer un nouveau document PDF, le paramètre est le nom du fichier à
créer.
Si le fichier ne peut pas être créé, -1 est retourné, autrement 0 est retourné. |
newPage(tnWidth, tnHeight)
| |
Ajouter une nouvelle page de largeur tnWidth et de hauteur tnHeight, au
document. |
newPage(tcPaperSize)
| |
Alternativement, vous pouvez définir la taille par la taille du papier en
donnant "A4" or "letter" comme paramètre.
"letter" est la valeur par défaut. |
endPage()
| |
Termine la page en cours.
Chaque page doit être finie avant que le document puisse être fini. |
finishDocument()
| |
Termine la création du document.
Le fichier PDF est créé. |
Contenu du Document
Réglage des couleurs
setForeColor(tnRed, tnGreen, tnBlue)
| |
Définit la couleur de premier plan. |
setBackColor(tnRed, tnGreen, tnBlue)
| |
Définit la couleur de fond. |
setColor(tnForeRed, tnForeGreen, tnForeBlue, tnBackRed, tnBackGreen, tnBackBlue)
| |
Définit la couleur de premier plan et la couleur de fond.
(Valeurs RVB 0-255) |
Ajouter du texte
setFont(tcFontName, tnFontSize, tlBold, tlItalic)
| |
Définit la police de caractères à utiliser. |
setPos(tnXpos, tnYpos)
| |
Définit la position d'écriture |
outText(tcText)
| |
Afficher le texte passé en paramètre.
La position d'écriture se déplace sur le droite en conséquence. |
newLine()
| |
Place la position d'écriture sur la ligne suivante |
Formes de Bases
addLine(tnXPos1, tnYPos1, tnXPos2, tnYPos2, tnLineWidth, lnPattern)
| |
Dessiner une ligne de [tnXPos1, tnYPos1] à [tnXPos2, tnYPos2].
Le paramètre "inLineWidth" défini la largeur en pixel.
Le paramètre "lnPattern" défini le modèle de trait :
1 ... pointillé
2 ... tiret
3 ... tiret-point
4 ... tiret-point-point
|
addBox(tnXPos, tnYPos, tnWidth, tnHeight, tnLineWidth, tnFill, tnPenPattern,
tnRoundFactor)
| |
Dessiner une rectangle de position [tnXPos, tyYpos], le largeur [tnWidth]
et de hauteur [tnHeight].
tnFill:
0 ... pas rempli
1 ... rempli
tnPenPattern:
0 ... pas de bord
1 ... pointillé
2 ... tiret
3 ... tiret-point
4 ... tiret-point-point
tnRoundFactor:
0 ... pas d'arrondi. Plus la valeur est élevée, plus les coins sont arrondis. 99
affiche une ellipse.
|
Utilisation de dessin en tracé
startPath(tnXPos, tnYpos)
| |
Débute un nouveau tracé à [tnXpos, tnYpos] |
appendLine(tnXpos, tnYpos)
| |
Ajoute une ligne droite du point courant à [tnXpos, tnYpos] |
appendBezier(tnXpos1, tnYpos1, tnXpos2, tnYpos2, tnXpos3, tnYpos3)
| |
Ajoute une courbe de Bézier du point courant à [tnXpos3, tnYpos3],
utilisant [tnXpos1, tnYpos1] et [tnXpos2, tnYpos2] comme points de contrôle de Bézier. |
closePath()
| |
Termine un tracé par l'ajout d'une ligne droite du point courant au point
de départ du tracé. |
stroke()
| |
Dessine le contour du tracé d'une courbe de Bézier. |
fill()
strokeandfill()
| |
Dessine le contour et remplit le tracé. |
Ajouter des images
addPicture(tcFileName, tnXpos, tnYpos, tnWidth, tnHeight, tnAdjType)
| |
Ajouter une image d'un fichier. Seuls les formats BMP and JPG sont supportés.
tnAdjType:
1 ... stretch picture, retain shape
2 ... stretch picture, fill frame
|
|
Modifier des pages générées par XFRX
|
Vous pouvez employer la PDL Library pour ajouter tous les graphiques
souhaités (par exemple des filigranes) et/ou du texte aux pages produites par XFRX. Vous
pouvez également ajouter de nouvelles pages entre les pages de rapport.
Pour faire cela, vous devez créer des procédures avec des commandes PDFL (PDFL scripts)
et indiquer à XFRX quand il doit appeler ces procédures :
- Créer un objet PDFL loDocument=evaluate([XFRX("PDFL#INIT")])
- L'attacher à une session existante de XFRX : loDocument.attachToPDFDocument(loXFRXSession)
- Créer une instance de classe de PDFLScripts. Employer l'objet PDFL comme paramètre de
la méthode init.
Le reste des méthodes de la classe sont les scripts PDFL. loScr =
createobject("PDFLScripts",loDocument)
La définition d'une classe avec un script simple ressemble à cela :
define class PDFLScripts as custom oPDFLDocument = null procedure init lpara
toPDFLDocument this.oPDFLDocument = toPDFLDocument endproc procedure script1
this.oPDFLDocument.addPicture("xfrx.jpg",10,673,300,500,2) endproc enddef
- Maintenant nous devons dire à XFRX quand (à quelles pages) il doit appeler le script.
Pour chaque script, appeler la méthode loXFRXSession.registerPDFLScript() :
loXFRXSession.registerPDFLScript(toScriptObject, tcMethodName, tnZIndex, tcScope,
tnPageNumberingType)
| toScriptObject |
La référence à l'objet PDFLScripts |
| tcMethodName |
Le nom de la méthode contenant le script |
| tnZIndex |
0 ... imprimer avant la page du rapport,
1 ... imprimer après la page du rapport |
| tcScope |
Définit quelles pages activent le script.
Peut contenir :
"ALL" (toutes),
"ODD" (page impaire),
"EVEN" (page paire)
ou des numéros de pages délimités par des virgules,
on peut même utiliser des plages de pages délimitées avec un trait d'union.
Exemples: "ODD", "1,5-19", "ODD,4,8" |
| tnPageNumberingType |
Comment XFRX doit déterminer le numéro de page :
0 ... absolu - le numéro de page du document,
1 ... relatif - le numéro de page du rapport courant,
2 ... la valeur de _PAGENO |
Exemple:
loXFRXSession.registerPDFLScript(loScr,"script1",0,"ALL",0)
- Toutes les fois que vous ajoutez du texte depuis un script, appelez la méthode
oPDFLDocument.manageText() à la fin du script.
- Vous pouvez ajouter autant de scripts que vous en avez besoin. Pour supprimer tout les
scripts enregistrés appelez : loXFRXSession.unregisterAllPDFLScripts()
Veuillez vous reporter à l'application livrée avec XFRX pour un exemple complet.
«EQEUS»
|
|