Pb centrage avec phpToPDF

Fermé
Niele - 1 mai 2008 à 22:29
 koD - 13 mai 2008 à 10:40
Bonjour :-)

J'ai trouvé l'exemple suivant dans un tutoriel pour utilser phpToPDF :

<? include("phpToPDF.php");

$PDF=new phpToPDF();
$PDF->AddPage();
$PDF->SetFont('Arial','B',16);

// Définition des propriétés du tableau.
$proprietesTableau = array(
'TB_ALIGN' => 'L',
'L_MARGIN' => 15,
'BRD_COLOR' => array(0,92,177),
'BRD_SIZE' => '0.3',
);

// 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' => 'C',
'V_ALIGN' => 'T',
'T_TYPE' => 'B',
'LN_SIZE' => 7,
'BG_COLOR_COL0' => array(170, 240, 230),
'BG_COLOR' => array(170, 240, 230),
'BRD_COLOR' => array(0,92,177),
'BRD_SIZE' => 0.2,
'BRD_TYPE' => '1',
'BRD_TYPE_NEW_PAGE' => '',
);

// Contenu du header du tableau.
$contenuHeader = array(
50, 50, 50,
"Titre de la première colonne", "année N-1", "année N",
);

// Définition des propriétés du reste du contenu du tableau.
$proprieteContenu = array(
'T_COLOR' => array(0,0,0),
'T_SIZE' => 16,
'T_FONT' => 'Arial',
'T_ALIGN_COL0' => 'L',
'T_ALIGN' => 'C',
'V_ALIGN' => 'M',
'T_TYPE' => 'B',
'LN_SIZE' => 15,
'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' => '',
);

// Contenu du tableau.
$contenuTableau = array(
"champ 1", 1, 2,
"champ 2", 3, 4,
"champ 3", 5, 6,
"champ 4", 7, 8,
);

// D'abord le PDF, puis les propriétés globales du tableau.
// Ensuite, le header du tableau (propriétés et données) puis le contenu (propriétés et données)
$PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);

$PDF->Output();

?>

Mais impossible de centrer ou cadrer à droite le texte dans les cellules d'un tableau. la propriété T_ALIGN complètement ignorée. Quelqu'un a déjà réussi à contourner ça ?

Merci !

1 réponse

Bonjour.

Je me suis penché sur la question étant donné que j'ai moi-même fais face au problème et j'ai trouvé la solution.
L'auteur se trompe simplement en écrasant les propriétés mises dans notre header par les valeurs par défaut qu'il a considéré!

On retrouve cela de la ligne 1215 à la ligne 1233 de la classe phpToPDF.

for($i=0; $i<$nbCol; $i++)
{
$header_type[$i] = $headerType; // ICI IL PLACE LES VALEURS DEFINIES
$header_type[$i]['WIDTH'] = $headerDatas[$i];

// Les contenus
$j = $nbCol+$i;
$header_type[$i]['TEXT'] = $headerDatas[$j];

// Si une donnée == 0 alors on affiche rien...
if ($header_type[$i]['TEXT'] != "0") ;
else $header_type[$i]['TEXT'] = "";

// par défaut, le texte est centré à gauche, non italic, non souligné et non gras.
// par défaut, les cellules ne sont pas fusionnées.
$header_type[$i]['T_TYPE'] = ''; // OVERWRITE DES VALEURS DEFINIES
$header_type[$i]['T_ALIGN'] = '';
$header_type[$i]['COLSPAN'] = "1";
}

Je conseillerai donc de commenter ces lignes "par défaut" afin de résoudre le problème.
Bonne journée!
4