PDF Maker : Utilisation des fonctions de dessin

 

 

 

Introduction

 

Ce deuxième article qui s’articule autour du graphisme s’attachera à expliquer comment le dialecte Pdf-Maker permet, par exemple, le dessin d’une ligne, d’un rectangle, d’un cercle ainsi que l’incorporation et la transformation d’images.

 

Dessiner une ligne :

« line »

Pour dessiner une ligne il suffit d’utiliser l’expression suivante :

Line x1 y1 x2 y2

Dans l’expression précédente, x1 et y1 sont les coordonnées du point X1 de départ et x2 et y2 les coordonnées du point X2 d’arrivée. N’oubliez pas que l’origine se situe dans le coin inférieur gauche de la page.

Voici un exemple simple qui permet de tracer des lignes verticales et horizontales :

REBOL [

      Title: "Exemple n°10"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple10.pdf

;-------------------------------------------------------------------------------

write/binary %exemple10.pdf layout-pdf [

      [ ; PAGE 1

            ; LIGNE VERTICALE ALLANT DU POINT X1(10,10) AU POINT X2(10,281)

            line 10 10 10 281

            ; LIGNE HORIZONTALE ALLANT DU POINT X1(10,281) AU POINT X2(201,281)

            line 10 281 201 281

            ; LIGNE VERTICALE ALLANT DU POINT X1(201,281) AU POINT X2(201,10)

            line 201 281 201 10

            ; LIGNE HORIZONTALE ALLANT DU POINT X1(201,10) AU POINT X2(10,10)

            line 201 10 10 10

      ]

]

 

L’exemple ci-dessus montre les tracés de simples lignes. Pdf-Maker permet de modifier l’apparence de ces lignes c’est à dire : leurs épaisseur, leurs terminaisons, leurs styles (tirets) ainsi que leurs couleurs.

 

Modifier l’épaisseur d’une ligne :

« line width »

L’expression line width e suivi de l’expression line x1 y1 x2 y2 permet de modifier l’épaisseur d’une ligne. A noter que e représente, en mm, l’épaisseur du trait.

L’exemple suivant dessine 4 traits avec différentes épaisseurs :

REBOL [

      Title: "Exemple n°11"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple11.pdf

;-------------------------------------------------------------------------------

write/binary %exemple11.pdf layout-pdf [

      [ ; PAGE 1

            ; LIGNE EPAISSE DE 0.25MM ALLANT DU POINT X1(10,10) AU POINT X2(10,281)

            line width 0.25

            line 10 10 10 281

            ; LIGNE EPAISSE DE 0.5MM ALLANT DU POINT X1(10,281) AU POINT X2(201,281)

            line width 0.5

            line 10 281 201 281

            ; LIGNE EPAISSE DE 0.75MM ALLANT DU POINT X1(201,281) AU POINT X2(201,10)

            line width 0.75

            line 201 281 201 10

            ; LIGNE EPAISSE DE 1MM ALLANT DU POINT X1(201,10) AU POINT X2(10,10)

            line width 1

            line 201 10 10 10

      ]

]

 

REMARQUE :

0 est la plus petite épaisseur pouvant être choisie.

 

 

 

Modifier les terminaisons d’une ligne :

« line cap »

L’expression line cap suivi de ses options de terminaisons : butt, round ou square permet de tracer une ligne avec différentes terminaisons expliquées ci-dessous :

Voici, par l’exemple, les différentes terminaisons que peut prendre une ligne :

REBOL [

      Title: "Exemple n°12"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple12.pdf

;-------------------------------------------------------------------------------

write/binary %exemple12.pdf layout-pdf [

      [ ; PAGE 1

            page size 50 20

            line width 2

            ; LIGNE AVEC TERMINAISON RONDE

            line cap round

            line 20 15 45 15

            ; LIGNE AVEC TERMINAISON CARRE

            line cap square

            line 20 10 45 10

            ; LIGNE AVEC TERMINAISON PAR DEFAUT

            line cap butt

            line 20 5 45 5

      ]

]

 


 

IMPORTANT :

Si vous avez choisi une option de tracé de ligne, par exemple la terminaison ronde (line cap round) et que vous désirez, sur la même page, dessiner une autre ligne

avec une épaisseur différente alors attention : votre ligne nouvellement construite gardera la propriété (round) du paramètre de terminaison (cap). Cette remarque est généralisable pour l’ensemble des mots de Pdf-Maker.

 

Modifier le style d’une ligne ou dessiner une ligne avec des tirets

« line dash »

L’expression suivante : line dash suivi des options suivantes :

solid

[x] z

[x y] z

[x1 y1 x2 y2] z

[x1 y1 x2 y2 … xn yn] z

 

 

 

 

 

 

F     line dash solid permet de dessiner un trait plein. C’est l’option qu’il faut choisir pour revenir d’une ligne avec tiret à une ligne sans tirets.

F     line dash [x] z permet d’obtenir une ligne avec une suite de tirets pleins de x mm et de tirets creux (espacement entre les tirets) de x mm ; z constitue, en mm, un décalage à gauche dans la phase des tirets

 

REMARQUE :

Si z est négatif alors le décalage ne se fait plus vers la gauche mais vers la droite.

 

 

 

F     line dash [x y] z permet de tracer une ligne avec des tirets pleins de x mm et des tirets creux de y mm ; z constitue, en mm, un décalage à gauche dans la phase des tirets.

F     line dash [x1 y1 x2 y2] z permet de dessiner des lignes avec tirets de x1 mm, suivi d’un écart de y1 mm, suivi d’un tiret de x2 mm et d’un écart de y2 mm avec z constituant, en mm, le décalage vers la gauche dans la phase des tirets.

F     line dash [x1 y1 x2 y2 … xn yn] z : en fait, line dash est suivi d’un bloc de N nombres indiquant, alternativement, la distance (en mm) du trait et la distance (en mm) de l’écart. Il faut que N soit un nombre pair. Quant à z, il indique toujours, en mm, le décalage vers la gauche des phases de tirets.

L’exemple suivant permettra de se familiariser avec les tirets :

REBOL [

      Title: "Exemple n°13"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple13.pdf

;-------------------------------------------------------------------------------

write/binary %exemple13.pdf layout-pdf [

      [ ; PAGE 1

            page size 50 5

            line width 0.5

            ; LIGNE AVEC TIRETS DE 2MM ET ECART DE 1MM SANS DECALAGE

            line dash [2 1] 0

            line 5 4 45 4

            ; LIGNE AVEC TIRETS DE 2MM ET ECART DE 1MM AVEC DECALAGE DE 1MM VERS LA GAUCHE

            line dash [2 1] 1

            line 5 3 45 3

            ; LIGNE AVEC TIRETS DE 2MM ET ECART DE 1MM AVEC DECALAGE DE 1MM VERS LA DROITE

            line dash [2 1] -1

            line 5 2 45 2

      ]

]

 

 

 

 

Coloriser une ligne :

« line color »

Il est aussi possible avec Pdf-Maker de coloriser une ligne grâce à l’expression line color.

Le mot line color suivi du tuple RGB permet d’affecter, à une ligne, une couleur définie. Voici un exemple simple de colorisation d’une ligne :

REBOL [

      Title: "Exemple n°14"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple14.pdf

;-------------------------------------------------------------------------------

write/binary %exemple14.pdf layout-pdf [

      [ ; PAGE 1

            page size 50 5

            line width 2

            ; LIGNE AVEC COULEUR ROUGE

            line color 255.0.0

            line 5 3 19 3

            ; SUITE DE LA LIGNE AVEC COULEUR VERTE

            line color 0.255.0

            line 19 3 33 3

            ; SUITE DE LA LIGNE AVEC COULEUR BLEUE

            line color 0.0.255

            line 33 3 45 3

      ]

]

 

 

 


Dessiner un rectangle ou un carré :

 

Rectangle ou Carré transparent :

« box »

La syntaxe suivante permet de créer un rectangle ou carré transparent :

box X Y L H

Dans l’expression précédente X et Y sont respectivement les coordonnées du point en bas et à gauche de la forme géométrique par rapport à l’origine (pour rappel : point en bas et à gauche de la page PDF).

L et H représentent respectivement la hauteur et la largeur du rectangle ou du carré (si L = H)

 

Rectangle ou Carré colorisé :

« solid box »

La syntaxe ci-après permet de construire un rectangle ou carré colorisé :

solid box X Y L H

X, Y, L et H ont la même signification que pour le mot « box ».Le noir est la couleur de remplissage, par défaut, du rectangle ou du carré créé grace à « solid box ».

Pour modifier cette couleur, il suffit d’utiliser « solid box color » suivi immédiatement du tuple RGB permettant de définir une couleur.

 

REMARQUE :

Le mot « line » utilisé juste avant les mots « box » ou « solid box » permet de définir le contour du rectangle ou du carré dessiné.

Cette remarque est aussi valable pour le dessin du contour des cercles et des formes géométriques quelconques (sauf pour le mot « fill ») que nous aborderons par la suite.

 

 

REBOL [

      Title: "Exemple n°15"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple15.pdf

;-------------------------------------------------------------------------------

write/binary %exemple15.pdf layout-pdf [

      [ ; PAGE 1

            page size 100 30

            line width 0.5

            line color 0.255.0

            ; RECTANGLE DE 20X10 DE LONG AVEC CONTOUR VERT

            box 5 10 20 10

            line color 255.0.0

            ; CARRE DE 10MM DE COTE AVEC CONTOUR ROUGE ET FOND NOIR

            solid box 45 10 10 10

            ; RECTANGLE DE 20X10mm DE LONG AVEC CONTOUR ROUGE ET FOND VERT

            solid box color 0.255.0 75 10 20 10

      ]

]

 

 

 


Dessiner un cercle :

 

Cercle transparent :

« circle »

La syntaxe suivante permet de créer un cercle transparent :

Circle X Y R

Dans l’expression précédente X et Y représentent les coordonnées du centre du cercle.

R représente la dimension du rayon.

 

Cercle colorisé :

« solid box

La syntaxe ci-après permet de construire un cercle colorisé :

solid circle X Y R

X, Y et R ont la même signification que pour le mot « circle ».Le noir est la couleur de remplissage, par défaut.

Pour modifier cette couleur, il suffit d’utiliser « solid circle color » suivi immédiatement du tuple RGB permettant de définir une couleur.

 

REBOL [

      Title: "Exemple n°16"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple16.pdf

;-------------------------------------------------------------------------------

write/binary %exemple16.pdf layout-pdf [

      [ ; PAGE 1

            page size 100 30

            line width 0.3

            line color 255.0.0

            ; CERCLE DE 14MM DE RAYON AVEC CONTOUR ROUGE ET FOND VERT

            solid circle color 0.255.0 50 15 14

            ; CERCLE DE 12MM DE RAYON AVEC CONTOUR ROUGE ET FOND NOIR

            solid circle color 0.0.0 50 15 12

            line color 0.255.0

            ; CERCLE DE 10MM DE RAYON AVEC CONTOUR VERT ET FOND BLANC

            solid circle color 255.255.255 50 15 10

      ]

]

 


Dessiner des formes géométriques quelconques

 

Forme géométrique transparente :

« stroke »

La syntaxe :

Stroke [X1 Y1 X2 Y2 X3 Y3 … Xn Yn]

permet de relier les point de coordonnées (X1,Y1) ; (X2,Y2) ; (X3,Y3) et … (Xn,Yn)

 

REMARQUE :

Le mot « stroke » sera apprécié pour son utilité dans la création de graphiques.

 

 

 

Forme géométrique colorisée

« fill »

La syntaxe :

fill [X1 Y1 X2 Y2 X3 Y3 … Xn Yn]

permet de remplir la forme géométrique avec la couleur noire (couleur par défaut). Pour modifier la couleur par défaut, il vous suffit de faire suivre immédiatement après le mot « fill » : « color » et son tuple RGB.

 

REMARQUE :

Pour remplir une forme géométrique , il faut que cette dernière soit fermée. Le mot « fill » issue du dialecte Pdf-Maker ferme automatiquement la forme géométrique c’est à dire qu’il relie les coordonnées du dernier point (Xn,Yn) aux coordonnées du premier (X1,Y1)

 

Forme géométrique avec application d’un contour

« paint »

La syntaxe suivante :

paint [X1 Y1 X2 Y2 X3 Y3 … Xn Yn]

« paint » est à la fois  « stroke » et « fill » c’est à dire qu’il dessine la forme comme pour « stroke » et la remplie comme le fait « fill »

 

REBOL [

      Title: "Exemple n°17"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple17.pdf

;-------------------------------------------------------------------------------

write/binary %exemple17.pdf layout-pdf [

      [ ; PAGE 1

            page size 30 30

            line width 0.2

            line color 0.255.0

            ; GRAPHIQUE VERT

            stroke [0 0 5 20 10 15 15 25 20 10]

            line color 255.0.0

            ; GRAPHIQUE ROUGE

            stroke [0 20 5 18 10 10 15 5 20 5]

      ]

]

 

 

 


Images

 

Insérer une image

« image »

Pdf-Maker permet d’insérer dans vos documents PDF des images aux formats .bmp .gif .jpg et .png..

Il existe deux manières d’insérer une image :

F     La première qui consiste à appeler directement le fichier aura la syntaxe suivante :

image X Y L H %image1.jpg

où (X,Y) correspondent aux coordonnées du coin inférieur gauche de l’image par rapport à l’origine, L la longueur de l’image et H la hauteur.

F     La seconde qui consiste à charger l’image avant de l’appeler aura la syntaxe suivante :

image1 : load %image1.jpg

image X Y L H image1

 

L’exemple suivant montre les deux manières d’insérer des images :

 

REBOL [

      Title: "Exemple n°18"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple18.pdf

;-------------------------------------------------------------------------------

image2: load %MonImage2.jpg

write/binary %exemple18.pdf layout-pdf [

      [ ; PAGE 1

            image 25 200 63 43 %MonImage1.jpg

            image 115 200 63 43 image2

      ]

]

 

 

 


Appliquer une rotation à l’image

« image rotated »

La syntaxe suivante permet d’appliquer une rotation d’angle A à l’image :

image X Y L H rotated A %image1.jpg

X,Y,L et H sont les mêmes paramètres que pour l’insertion d’image.

A constitue l’angle de rotation en degrés.

 

REMARQUE :

Si vous affectez à A une valeur négative alors la rotation s’effectue dans l’autre sens (voir l’exemple suivant)

 

 

REBOL [

      Title: "Exemple n°19"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple19.pdf

;-------------------------------------------------------------------------------

image2: load %MonImage2.jpg

write/binary %exemple19.pdf layout-pdf [

      [ ; PAGE 1

            ; ROTATION DE 20° DANS LE SENS POSITIF

            image 25 200 63 43 rotated 20 %MonImage1.jpg

            ; ROTATION DE 20° DANS LE SENS NEGATIF

            image 115 200 63 43 rotated -20 image2

      ]

]

 

 

 


Transformation oblique d’une image :

« image skew »

En appliquant la syntaxe suivante :

image X Y L H skew Ax Ay

vous appliquerez une transformation, point par point, d’un angle Ax (en degrés) par rapport à l’axe des abscisses et d’un angle Ay par rapport à l’axe des ordonnées.

 

REMARQUE :

Si vous affectez 0 à Ay et un chiffre différent de 0 à Ax alors la transformation aura lieu uniquement par rapport à l’axe des abscisses. A l’inverse, si vous affectez 0 à Ax et un chiffre différent de 0 à Ay alors la transformation aura lieu uniquement par rapport à l’axe des ordonnées. L’exemple ci-après vous permettra de faire le point à ce sujet.

 

REBOL [

      Title: "Exemple n°20"

]

 

do %pdf-maker.r

 

;-------------------------------------------------------------------------------

; GENERATION DU PDF exemple20.pdf

;-------------------------------------------------------------------------------

write/binary %exemple20.pdf layout-pdf [

      [ ; PAGE 1

            ; TRANSFORMATION OBLIQUE DE 20° PAR RAPPORT A L'AXE DES ABSCISSES

            image 25 220 63 43 skew 20 0 %MonImage1.jpg

            ; TRANSFORMATION OBLIQUE DE 20° PAR RAPPORT A L'AXE DES ORDONNEES

            image 25 175 63 43 skew 0 20 %MonImage1.jpg

            ; TRANSFORMATION OBLIQUE DE 20° PAR RAPPORT A L'AXE DES ABSCISSES

            ; ET DE 20° PAR RAPPORT A L'AXE DES ORDONNEES

            image 100 220 63 43 skew 20 20 %MonImage1.jpg

      ]

]

 

 


 

Conclusion

 

Ce deuxième article a permis de faire le point sur les éléments graphiques du dialecte Pdf-Maker. L’article suivant vous permettra d’acquérir des notions avancées sur l’ensemble des text box, images et formes géométriques ainsi que sur la composition dynamique d’un fichier PDF.

Benoit Delannoy

Retour