Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Je fais une petite application qui récupère des spools imprimantes que j'essaye de mettre en pdf.
En utilisant fpdf je n'ai aucun soucis. Mais dans un soucis de clarté (et de superposition de caractères), j'essaye de mettre zend_pdf en place.
Pour cela je récupère mes attributs de spool pour trouver le format d'impression. Jusque la rien de bien compliqué sauf que j'ai une fonction pour me paramétrer le pdf :
private function FormatPapier2($largeur,$hauteur,$cpi,$lpi) { $f_largeur=$largeur/$cpi; $f_hauteur=$hauteur/$lpi; if ($f_largeur>7 && $f_largeur<9 && $f_hauteur>10 && $f_hauteur<13) { // Format A4 portrait 1pt = 1/72 inch $liste=array("format"=>"Zend_Pdf_Page::SIZE_A4","hauteur"=>"842","marge_l"=>"15","marge_t"=>"15","ligne"=>72/$lpi,"texte"=>"6.6"); } elseif ($f_hauteur>7 && $f_hauteur<9 && $f_largeur>10 && $f_largeur<13) { // Format A4 Landscape $liste=array('format'=>'Zend_Pdf_Page::SIZE_A4_LANDSCAPE','hauteur'=>'595','marge_l'=>'15','marge_t'=>'15','ligne'=>72/$lpi,'texte'=>'6.6'); } elseif ($f_largeur>11 && $f_largeur<15 && $f_hauteur=11) { // Format Listing 11 pouces $liste=array('format'=>'Zend_Pdf_Page::(792,1077)','hauteur'=>'792','marge_l'=>'15','marge_t'=>'15','ligne'=>72/$lpi,'texte'=>'8.7'); } elseif ($f_largeur>11 && $f_largeur<15 && $f_hauteur=12) { // Format Listing 12 pouces $liste=array('format'=>'Zend_Pdf_Page::(864,1077)','hauteur'=>'864','marge_l'=>'15','marge_t'=>'15','ligne'=>72/$lpi,'texte'=>'8.7'); } return $liste; }
et l'appel de la fonction :
$format=$this->FormatPapier2($pagewidth,$pagelength,$cpi,$lpi); $pdf->pages[] = ($page = $pdf->newPage(Zend_Pdf_Page::$format["format"]));
et la j'ai un beau :
Fatal error: Access to undeclared static property: Zend_Pdf_Page::$format in /www/pdf/site/application/controllers/IndexController.php on line 206
Y-a-t-il un moyen de mettre le format de page du pdf dans mon array avec le Zend_Pdf ou d'initialiser le Zend_Pdf_Page en non static... ?
Je ne suis pas un pro et la je me perds un peu.
Merci
Hors ligne
Bon je vais me répondre à moi même après quelques heures de recherche, je n'ai pas trouvé d'autre solution que de donner le format de page en points.
private function FormatPapier2($largeur,$hauteur,$cpi,$lpi) { $f_largeur=$largeur/$cpi; $f_hauteur=$hauteur/$lpi; if ($f_largeur>7 && $f_largeur<9 && $f_hauteur>10 && $f_hauteur<13) { // Format A4 portrait 1pt = 1/72 inch $liste=array("format"=>"595:842:","hauteur"=>"842","marge_l"=>"15","marge_t"=>"15","ligne"=>72/$lpi,"texte"=>"7"); } elseif ($f_hauteur>7 && $f_hauteur<9 && $f_largeur>10 && $f_largeur<13) { // Format A4 Landscape $liste=array('format'=>"842:595:",'hauteur'=>'595','marge_l'=>'15','marge_t'=>'15','ligne'=>72/$lpi,'texte'=>'7'); } elseif ($f_largeur>11 && $f_largeur<15 && $f_hauteur=11) { // Format Listing 11 pouces $liste=array('format'=>"1077:792:",'hauteur'=>'792','marge_l'=>'15','marge_t'=>'15','ligne'=>70.5/$lpi,'texte'=>'9'); } elseif ($f_largeur>11 && $f_largeur<15 && $f_hauteur=12) { // Format Listing 12 pouces $liste=array('format'=>"1077:864:",'hauteur'=>'864','marge_l'=>'15','marge_t'=>'15','ligne'=>70.5/$lpi,'texte'=>'9'); } return $liste; }
Ca oblige à trouver le format de chaque page mais c'est la seule solution que j'ai trouvé pour l'instant. Ca n'est pas le plus pratique dans le Zend_Pdf.
Par contre ca m'a solutionné mon problème de superposition de caractère que j'avais car avec le Zend_pdf on gère ligne à ligne ce qui m'arrange.
Hors ligne
Pages: 1