I. Présentation▲
Les méthodes documentées ici sont extraites de la classe phpToPDF. Cette classe est utilisée par des scripts PHP permettant de générer des documents PDF rapidement et facilement.
II. Les méthodes de base▲
Les méthodes de base proviennent de la bibliothèque FPDF, le manuel est sur http://www.fpdf.org à la rubrique « manuel ». Il n'est donc pas nécessaire de redéfinir ces méthodes ici.
III. La méthode drawTableau▲
Cette méthode provient de la classe phpToPDF et a été écrite à partir de scripts existants et freewares, elle est donc libre d'utilisation. On considère qu'un tableau est composé de deux parties, le header (en-tête) et le contenu. Cinq variables vont permettre à l'utilisateur de choisir le style de son tableau, ce sont donc ces cinq variables que je vais définir ici.
III-A. $proprietesTableau▲
La variable $proprietesTableau est un tableau pouvant contenir quatre paramètres. Il contient les propriétés générales du tableau.
// Définition des propriétés du tableau.
$proprietesTableau
=
array(
'
BRD_COLOR
'
=>
array(0
,
255
,
0
),
'
BRD_SIZE
'
=>
'
0.3
'
,
'
TB_ALIGN
'
=>
'
L
'
,
'
L_MARGIN
'
=>
15
,
);
Paramètres |
Descriptions |
---|---|
BRD_COLOR |
C'est la couleur du bord du tableau. Par exemple, « array(120, 120, 120) » définit les composantes RVB (Rouge, Vert, Bleu) comprises entre 0 et 255. |
BRD_SIZE |
C'est l'épaisseur en millimètres du bord du tableau. Par exemple, « 0.3 » définit une bordure de 0,3 millimètre. |
TB_ALIGN |
C'est l'alignement par défaut du tableau, « L » pour Left, « C » pour Centered et « R » pour Right. Toutes les cellules seront alignées sur cette valeur. Il est tout de même possible d'individualiser chaque cellule pour le style et l'alignement. |
L_MARGIN |
C'est la marge gauche qui vaut 0 par défaut. Il faut préciser qu'elle s'ajoute à la marge gauche globale définie par la méthode SetMargins($left,$top,$right=-1) et qui vaut 10 millimètres par défaut. Si l'on ne met rien, la marge du tableau sera de 10 millimètres. |
III-B. $proprieteHeader▲
Ce tableau définit les propriétés du header du tableau. Afin de pouvoir différencier le header du contenu, le même type de tableau ($proprieteContenu) est appliqué au reste du tableau.
// Définition des propriétés du header du tableau.
$proprieteHeader
=
array(
'
T_COLOR
'
=>
array(150
,
10
,
10
),
'
T_SIZE
'
=>
12
,
'
T_FONT
'
=>
'
Arial
'
,
'
T_ALIGN_COL0
'
=>
'
L
'
,
'
T_ALIGN
'
=>
'
C
'
,
'
V_ALIGN
'
=>
'
T
'
,
'
T_TYPE
'
=>
'
B
'
,
'
LN_SIZE
'
=>
7
,
'
BG_COLOR_COL0
'
=>
array(0
,
240
,
230
),
'
BG_COLOR
'
=>
array(170
,
240
,
230
),
'
BRD_COLOR
'
=>
array(255
,
0
,
0
),
'
BRD_SIZE
'
=>
0.3
,
'
BRD_TYPE
'
=>
1
,
'
BRD_TYPE_NEW_PAGE
'
=>
''
,
);
Paramètres |
Descriptions |
---|---|
T_COLOR |
C'est la couleur du texte du header, c'est-à-dire de la première ligne du tableau. Par exemple, « array(255, 0, 0) » écrira le texte de la première ligne du tableau en rouge. |
T_SIZE |
C'est la taille de police de caractères du texte. |
T_FONT |
C'est le nom de la font utilisée. Par exemple, « Arial ». |
T_ALIGN_COL0 |
C'est l'alignement du texte dans la cellule de la première colonne. Les valeurs peuvent être « L » (Left), « C » (Centered), ou « R » (Right). Ce paramètre est utilisé si l'utilisateur veut différencier l'alignement entre la cellule de la première colonne et les autres cellules du header. |
T_ALIGN |
C'est l'alignement du texte dans les cellules du header. Les valeurs sont les mêmes que pour T_ALIGN_COL0. |
V_ALIGN |
C'est l'alignement vertical du texte dans sa cellule. Les valeurs peuvent être « T » (Top), « M » (Middle), ou « B » (Bottom). |
T_TYPE |
C'est le type du texte du header. Les valeurs peuvent être « B » (Bold), « I » (Italic) ou « U » (Underline). |
LN_SIZE |
C'est le saut de ligne dans les cellules du header du tableau. |
BG_COLOR_COL0 |
Il arrive que l'on veuille différencier la première colonne d'un tableau avec le reste de ce tableau. Ce paramètre permet de mettre une couleur de fond différente entre la première colonne et le reste du header. |
BG_COLOR |
C'est la couleur de fond des cellules du header du tableau. |
BRD_COLOR |
C'est la couleur des bords du header. |
BRD_SIZE |
C'est l'épaisseur en millimètres du bord du header du tableau. |
BRD_TYPE |
Indique si des bords doivent être tracés autour de chaque cellule. La valeur est soit un chiffre, 0 (pas de bord) ou 1 (un bord complet) soit une chaîne contenant certains ou tous les caractères suivants (dans un ordre quelconque), « L » (Left), « T » (Top), « R » (Right), « B » (Bottom). |
BRD_TYPE_NEW_PAGE |
Il est possible de changer le tracé des bords en changeant de page, c'est avec ce paramètre que l'on peut le faire. Si l'on veut garder les mêmes caractéristiques, laisser ce paramètre vide. |
III-C. $contenuHeader▲
Ce tableau contient 2*n paramètres sachant que n est le nombre de colonnes du tableau à insérer.
$contenuHeader
=
array(
50
,
50
,
50
,
"
Texte de la première cellule
"
,
"
La deuxième
"
,
"
Texte de la dernière cellule
"
,
);
Paramètres |
Descriptions |
---|---|
Les n premiers paramètres |
Ce sont les largeurs (en millimètres) respectives des n colonnes du tableau à insérer. |
Les n derniers paramètres |
Ce sont les textes que contiennent les n cellules du header. |
III-C-1. Fusionner les cellules▲
Il est possible de fusionner les cellules 2 à 2. Pour ce faire, il faut utiliser la balise « COLSPAN2 » comme dans l'exemple ci-après.
$contenuHeader
=
array(
50
,
50
,
50
,
"
Texte des 2 premières cellules fusionnées
"
,
"
COLSPAN2
"
,
"
Texte de la dernière cellule
"
,
);
III-C-2. Spécifier le style de chaque cellule▲
Il est aussi possible de définir le style du texte contenu dans chaque cellule du tableau. Il faut pour cela utiliser les balises suivantes entre crochets :
- I, B et/ou U pour Italic, Bold et Underscore ;
- L, C et/ou R pour Left, Centered et Right.
Il est possible de mêler les styles comme [LUIB] par exemple.
// Contenu du header du tableau.
$contenuHeader
=
array(
50
,
50
,
50
,
"
[LU]Gauche souligné
"
,
"
[RB] droite gras
"
,
"
[CI] centré italique
"
,
);
III-D. $proprieteContenu▲
// Définition des propriétés du reste du contenu du tableau.
$proprieteContenu
=
array(
'
T_COLOR
'
=>
array(0
,
0
,
0
),
'
T_SIZE
'
=>
10
,
'
T_FONT
'
=>
'
Arial
'
,
'
T_ALIGN_COL0
'
=>
'
L
'
,
'
T_ALIGN
'
=>
'
R
'
,
'
V_ALIGN
'
=>
'
M
'
,
'
T_TYPE
'
=>
''
,
'
LN_SIZE
'
=>
6
,
'
BG_COLOR_COL0
'
=>
array(245
,
245
,
150
),
'
BG_COLOR
'
=>
array(255
,
255
,
255
),
'
BRD_COLOR
'
=>
array(0
,
92
,
177
),
'
BRD_SIZE
'
=>
0.1
,
'
BRD_TYPE
'
=>
'
1
'
,
'
BRD_TYPE_NEW_PAGE
'
=>
''
,
);
Les paramètres de cette variable sont les mêmes que pour le header sauf qu'ils s'appliquent au contenu du tableau.
III-E. $contenuTableau▲
// Contenu du tableau.
$contenuTableau
=
array(
"
mon texte
"
,
"
la colonne 2, ligne 1
"
,
"
le contenu de ma troisième cellule
"
,
"
Salut 1
"
,
1
,
2
,
"
champ 2
"
,
3
,
4
);
Les options concernant la fusion de deux cellules ou l'individualisation du style de chaque cellule sont identiques à celles exposées pour le header.
III-F. Appel de la fonction▲
Il suffit pour terminer d'appeler la méthode drawTableau.
$pdf
->
drawTableau($pdf
,
$proprietesTableau
,
$proprieteHeader
,
$contenuHeader
,
$proprieteContenu
,
$contenuTableau
);