Documentation des fonctions avancées de la classe phpToPDF

Jean-Christophe CORNIC

phpToPDF est une classe dérivée de FPDF. Je l'ai présentée dans un autre article et nous allons ici nous concentrer sur la méthode permettant de créer des tableaux de données.

- Titre : Documentation des fonctions avancées de la classe phpToPDF

- Auteur : Jean-Christophe CORNIC

- Parution : 2 février 2007

- Mise à jour : 9 décembre 2019

- Licence : Copyright ® 30/11/2006 J.C. CORNIC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Présentation

- II. Les méthodes de base

- III. La méthode drawTableau

- III-A. $proprietesTableau

- III-B. $proprieteHeader

- III-C. $contenuHeader

- III-C-1. Fusionner les cellules

- III-C-2. Spécifier le style de chaque cellule

- III-D. $proprieteContenu

- III-E. $contenuTableau

- III-F. Appel de la fonction

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);