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 librairie 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 permettrent à l'utilisateur de choisir le style de son tableau, ce sont donc ces cinq variables que je vais définir ici.

II-A. $proprietesTableau

La variable $proprietesTableau est un tableau pouvant contenir 4 paramètres. Il contient les propriétés générales du tableau.

 
Sélectionnez

// 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ètre du bord du tableau. Par exemple, "0.3" définit une bordure de 0,3 millimètres.
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éfinit 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.

II-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.

 
Sélectionnez

// 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ère 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 sdu header.
BRD_SIZE C'est l'épaisseur en millimètre du bord du header du tableau.
BRD_TYPE Indique si des bords doivent être tracés autour de chaque cellules. La valeur est soit un chiffre, 0 (pas de bords) 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.

II-C. $contenuHeader

Ce tableau contient 2*n paramètres sachant que n est le nombre de colonnes du tableau à insérer.

 
Sélectionnez

$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.

II-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.

 
Sélectionnez

$contenuHeader = array(
	50, 50, 50,
	"Texte des 2 premières cellules fusionnées", "COLSPAN2", "Texte de la dernière cellule",
	);

II-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.

 
Sélectionnez

// Contenu du header du tableau.	
$contenuHeader = array(
	50, 50, 50,
	"[LU]Gauche souligné", "[RB] droite gras", "[CI] centré italique",
	);

II-D. $proprieteContenu

 
Sélectionnez

// 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.

II-E. $contenuTableau

 
Sélectionnez

// 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.

II-F. Appel de la fonction

Il suffit pour terminer d'appeler la méthode drawTableau.

 
Sélectionnez

$pdf->drawTableau($pdf, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);