Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-04-2008 23:37:53

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Zend_Pdf et paramétrage du format de page

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 :

Code:

    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 :

Code:

        $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

 

#2 01-05-2008 12:14:49

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: Zend_Pdf et paramétrage du format de page

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.

Code:

    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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages