Affichage tableau FPDF en 2 parties
Posté : 17 juin 2011, 09:52
Bonjour à tous,
J'ai un tableau que j'affiche en PDF via FPDF que j'alimente via une requête SQL sur une base MySQL.
Tout fonctionne correctement mais ce tableau étant destiné à l'impression, je cherche à otpimiser sa mise en forme et sa taille.
Ce que je cherche à faire c'est déjà d'afficher celui-ci en 2 parties par pages, c'est-à-dire avoir 2 fois plus d'infos du tableau affichées par page.
J'essaie de détecter en vain la fin de la page pour replacer le curseur en haut de la page mais comme la création du tableau se fait simplement avec la fonction DrawTableau je ne vois pas ou placer la détection de fin de page afin de redessiner un nouveau tableau à d'autres coordonnées.
Je ne sais pas si je me suis bien fais comprendre mais n'hésitez pas à me demander plus d'infos !
Je vous mets mon code pour être plus clair :
Merci d'avance pour votre aide !
J'ai un tableau que j'affiche en PDF via FPDF que j'alimente via une requête SQL sur une base MySQL.
Tout fonctionne correctement mais ce tableau étant destiné à l'impression, je cherche à otpimiser sa mise en forme et sa taille.
Ce que je cherche à faire c'est déjà d'afficher celui-ci en 2 parties par pages, c'est-à-dire avoir 2 fois plus d'infos du tableau affichées par page.
J'essaie de détecter en vain la fin de la page pour replacer le curseur en haut de la page mais comme la création du tableau se fait simplement avec la fonction DrawTableau je ne vois pas ou placer la détection de fin de page afin de redessiner un nouveau tableau à d'autres coordonnées.
Je ne sais pas si je me suis bien fais comprendre mais n'hésitez pas à me demander plus d'infos !
Je vous mets mon code pour être plus clair :
<?php
try {
$bdd = new PDO('mysql:host=localhost;dbname=inventaire', 'inventaire', 'test');
} catch(Exception $e) {
die('Erreur : '.$e->getMessage());
}
$inventaire = $bdd->query("SELECT * FROM inventaire")or die(print_r($bdd->errorInfo()));
include("phpToPDF.php");
$PDF = new phpToPDF('P','mm','A4');
$PDF->AddPage();
$PDF->SetAutoPageBreak(true,5);
$PDF->setXY(0,40);
// Définition des propriétés du tableau.
$proprietesTableau = array(
'TB_ALIGN' => 'C',
// 'L_MARGIN' => 0,
// 'T_MARGIN' => 100,
'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' => 8,
'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(
30, 30, 30,
"ARTICLE", "STOCK", "PRIX",
);
// 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' => 'C',
'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' => '',
);
// Contenu du tableau.
$contenuTableau = array();
while ($tab = $inventaire->fetch()) {
array_push($contenuTableau, $tab['ARTICLE'], $tab['STOCK'], $tab['PRIX']);
}
$inventaire->closeCursor();
$PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
$PDF->Output();
?>
Quelqu'un connait-il une manière (détourné ou non) de détecter une fin de page et de continuer la fonction "drawTableau" ailleurs ?Merci d'avance pour votre aide !
