1

Bonjour, j'essai d'utiliser depuis ce matin et sans succès html2pdf couplé au framework Zend.
Soit je suis nul, soit je n'ai pas la bonne méthode donc pour faire simple je vais vous montrer mon code.
A la fin de ma commande au lieu de me créer mon pdf j'ai une page blanche.

Voici la partie appelant html2pdf situé dans mon controleur
//recup du mail formaté $mailcontenu1 = $this->_helper->facturepdf("facture", $facture); $html2pdf = new HTML2PDF('P','A4', 'fr'); $html2pdf->WriteHTML($mailcontenu1); $html2pdf->Output(DOSSIERPDF.'exemple01.pdf', 'F');



et voici mon helper qui me retourne tout mon html (attention sa va prendre de la place)
class Facturepdf extends Zend_Controller_Action_Helper_Abstract {      public function predispatch()      {                 }            public function direct($type, $infosdoc)      {           if($type != "facture" && $type != "recapitulatif commande" && $type != "bon de livraison")           {                return false; //on a appelé la fonction sans les bons arguments           }                      //récupération des données en session           $panier = new Zend_Session_Namespace('paniercaratamp');           $infos = new Zend_Session_Namespace('infoscommande');          $fraisport = new Zend_Session_Namespace('Fraisport');          $ident = Zend_Auth::getInstance()->getIdentity();           $mail = "<style type=\"text/css\">\n";           $mail .= "body  {                          margin: 0;                           padding: 0;                          text-align: center;                          color: #000000;                          background-color: #FFF;                     }\n";           $mail .= "#container {                          width: 566px;                          margin: 0 auto; /* les marges automatiques (et dotées d'une largeur positive) centrent la page */                          text-align: left;                          background-color: #FFFFFF;                          background-image: none;                     } \n";           $mail .= "#mainContent {                           margin: 0 0 0 0;                           font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          color: #666666;                          text-align: justify;                          text-decoration: none;                          min-height:450px;                          height:auto;                          position:relative;                     } \n";           $mail .= "#mainContent #contenuText {                          width: 566px;                          height:auto;                          padding: 3px 3px 20px 3px;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          color: #666666;                     }                                          #contenuText a {                          color: #333333;                          text-decoration: none;                     }                     #contenuText a:hover {                          color: #000000;                          text-decoration: none;                     }\n";           $mail .= "#footer {                           padding: 0 10px 0 20px;                     }                      #footer p {                          margin: 0;                           padding: 10px 0;                      }\n";           $mail .= ".coordonnees {                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 10px;                          color: #666666;                          text-decoration: none;                          margin: 5px;                          text-align: center;                          width: 100%;                     }                     .coordonnees a {                          color: #666666;                          text-decoration: none;                     }                     .coordonnees a:hover {                          color: #0066FF;                          text-decoration: none;                     }                     .infosLegales {                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 10px;                          color: #999999;                          text-decoration: none;                          margin: 5px;                          text-align: center;                          width: 100%;                     }                     .infosLegales a {                          color: #999999;                          text-decoration: none;                     }                     .infosLegales a:hover {                          color: #0066FF;                          text-decoration: none;                     }                     .copyright {                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 10px;                          color: #666666;                          text-decoration: none;                          margin: 5px;                          text-align: center;                          width: 100%;                     }                     .copyright a {                          color: #666666;                          text-decoration: none;                     }                     .copyright a:hover {                          color: #0066FF;                          text-decoration: none;                     }\n";           $mail .= ".tabpanier                     {                          margin:auto;                          text-align:center;                          border:0;                          padding:3px;                          border:1px solid #2e6ab1;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          color: #666666;                     }                                          .tabpanier td                     {                          border-bottom:1px dotted #2e6ab1;                          padding:2px;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          padding:2px;                     }                                          .tabpanier .entete                     {                          background-color:#2e6ab1;                          color:#FFFFFF;                          text-align:center;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                     }                                          .tabpanier .ancienprix                     {                          text-decoration:line-through;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          color: #666666;                     }                                          .tabpanier .piedpage                     {                          text-align:center;                          height:30px;                          vertical-align:middle;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          color: #666666;                     }                                          .coordonneestab                     {                          border:0;                          margin:auto;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          color: #666666;                     }                                          #logo                     {                          text-align:center;                     }                     .blue                     {                          color:#2e6ab1;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                     }                     .textedroite                     {                          text-align:right;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          color: #666666;                     }                                          #fenetre                     {                          font-weight:bold;                          background-color:#EFEFEF;                          border:dashed 1px #A1A1A1;                          padding:5px;                          font-family:Helvetica, \"Times New Roman\", serif;                          font-size: 11px;                          color: #666666;                     }\n";           $mail .= "</style>\n";           $mail .= ";<page>\n";           $mail .= "<div id=\"container\">\n";           $mail .= "<div id=\"logo\">\n";           $mail .= "<img src=\"http://caratamp.fr/images/design/logo.png\" />\n";           $mail .= "</div>\n";           $mail .= "<br />\n";           $mail .= "<div id=\"mainContent\">\n";           $mail .= "<div id=\"contenuText\">\n";           $mail .= "<table width=\"535\" class=\"coordonneestab\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";           $mail .= "<tr>\n";                                 //adresse de facturation           $mail .= "<td width=\"296\" valign=\"top\">\n";           $mail .= "<span>\n";           $mail .= "Coordonnées de facturation :<br /><br />\n";           $mail .= "<strong>\n";                      if($ident->ispro == 1)           {                $mail .="$ident->societe\n";           }                      $mail .= "$ident->Nom $ident->Prenom <br />\n";           $mail .= "$ident->Adresse     <br />\n";           $mail .= "$ident->codepostal $ident->ville \n";           $mail .= "</strong>\n";           $mail .= "</span>\n";           $mail .= "</td>\n";                      if($type == "facture" || $type == "recapitulatif commande")           {                //adresse d'envoi                $mail .= "<td width=\"239\" valign=\"top\">\n";                $mail .= "<div id=\"fenetre\">\n";                                if($ident->ispro == 1)                {                     $mail .="$ident->societe\n";                }                                $mail .= "$ident->Nom $ident->Prenom <br />\n";                $mail .= "$ident->Adresse     <br />\n";                $mail .= "$ident->codepostal $ident->ville \n";                $mail .= "</div>\n";                $mail .= "</td>\n";           }           else           {                //adresse d'envoi                $mail .= "<td width=\"239\" valign=\"top\">\n";                $mail .= "<div id=\"fenetre\">\n";                                if($ident->ispro == 1)                {                     $mail .="$ident->societe\n";                }                $mail .= "$ident->Nomdest $ident->Prenomdest <br />\n";                $mail .= "$ident->Adressedest     <br />\n";                $mail .= "$ident->cpdest $ident->villedest \n";                $mail .= "</div>\n";                $mail .= "</td>\n";           }                                 $mail .= "</tr>\n";           $mail .= "</table>\n";           $mail .= "<br /> \n";           $mail .= "<table width=\"535\" class=\"coordonneestab\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";           $mail .= "<tr>\n";                      //adresse de livraison           $mail .= "<td width=\"296\" valign=\"top\">\n";           $mail .= "<span>\n";           $mail .= "Coordonnées de livraison : <br /><br />\n";           $mail .= "<strong>\n";           if($ident->ispro == 1)           {                $mail .="$ident->societe\n";           }           $mail .= "$ident->Nomdest $ident->Prenomdest <br />\n";           $mail .= "$ident->Adressedest     <br />\n";           $mail .= "$ident->cpdest $ident->villedest \n";           $mail .= "</strong>\n";           $mail .= "</span>\n";           $mail .= "<br /><br /><br /><span>En votre aimable règlement : </span>";           $mail .= "</td>\n";                      //infos facture/bon de commande/...           $mail .= "<td width=\"239\" valign=\"top\">\n";                      if($type == "facture")           {                $mail .= "Facture n° <strong class=\"blue\">  $infosdoc->numfacture</strong>.<br /><br />\n";           }           if($type == "recapitulatif commande" || $type == "bon de livraison")           {                $mail .= "Commande n° <strong class=\"blue\">  $infosdoc->numcommande</strong>.<br /><br />\n";           }           $mail .= "<div>Date : 07/05/2009 <br />\n";           $mail .= "Code Client: <strong>".substr($ident->codeclient,0,7)."</strong></div>\n";           $mail .= "</td>\n";                      $mail .="</tr>\n";           $mail .="</table>\n";           $mail .=" <br />\n";           $mail .=" <br />\n";                      //tableau des commandes           $mail .="<table width=\"543\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tabpanier\">\n";           $mail .="<tr class=\"entete\" bgcolor=\"#2e6ab1\" style=\"color:#FFF\">                     <td widtd=\"90\" colspan=\"1\">Nom Produit</td>                     <td widtd=\"80\" colspan=\"1\">Reference</td>                     <td widtd=\"60\" colspan=\"1\">Coloris</td>                     <td widtd=\"70\" colspan=\"1\">Encre</td>                     <td widtd=\"41\" colspan=\"1\">Img Perso</td>                     <td widtd=\"41\" colspan=\"1\">Texte Perso</td>\n";           if($type != "bon de livraison")           {                $mail .= "<td width=\"59\" colspan=\"1\">Prix Unit.</td>\n";           }           $mail .= "<td width=\"35\" colspan=\"1\">Qté</td>\n";                    if($type != "bon de livraison")           {                $mail .= "<td width=\"65\" colspan=\"1\">Total</td>\n";           }         $mail .= "</tr>\n";                    foreach($panier->produit as $produit)         {                //ligne produit                $mail .="<tr bgcolor=\"#FFFFFF\">\n";                $mail .="<td colspan=\"1\" style=\border-bottom:1px dotted #2e6ab1;\">".$produit['Nom']."</td>\n";                $mail .="<td colspan=\"1\">".$produit['Reference']."</td>\n";                                if(!empty($produit['Coloris']))                {                     $mail .="<td colspan=\"1\">".$produit['Coloris']."</td>\n";                }                else                {                     $mail .="<td colspan=\"1\">N/C</td>\n";                }                $mail .="<td colspan=\"1\">".$produit['Encre']."</td>\n";                                if(!empty($produit['Imageperso']))                {                     $mail .="<td colspan=\"1\"><img src=\"http://caratamp.fr/images/design/coche.jpg\"/></td>\n";                }                else                {                     $mail .="<td colspan=\"1\"><img src=\"http://caratamp.fr/images/design/noncoche.jpg\"/></td>\n";                }                                if(!empty($produit['Texttamp']))                {                     $mail .="<td colspan=\"1\"><img src=\"http://caratamp.fr/images/design/coche.jpg\"/></td>\n";                }                else                {                     $mail .="<td colspan=\"1\"><img src=\"http://caratamp.fr/images/design/noncoche.jpg\"/></td>\n";                }                           if($type != "bon de livraison")                {                     $mail .="<td colspan=\"1\" style=\"text-align:right\"><strong>".number_format($produit['Prix']*(1-($produit['Remise']/100)),2)." Eur.</strong></td>\n";                }                $mail .="<td colspan=\"1\" >".$produit['Quantite']."</td>\n";                if($type != "bon de livraison")                {                     $mail .="<td colspan=\"1\" style=\"text-align:right\"><strong>".number_format($produit['Quantite']*($produit['Prix']*(1-($produit['Remise']/100))),2)." Eur.</strong></td>\n";                                     }                $mail .="</tr>\n";         }                      if($type != "bon de livraison")           {                //montant du panier                $mail .="<tr bgcolor=\"#D7D7D7\">\n";                $mail .="<td colspan=\"8\" style=\"text-align:right\">Montant de la Commande :</td>\n";                $mail .="<td colspan=\"1\" style=\"text-align:right\">".number_format($infos->prixtotal,2)." Eur. </td>\n";                $mail .="</tr>\n";                                //type d'envoi + tarif                $mail .="<tr bgcolor=\"#D7D7D7\">\n";                $mail .="<td colspan=\"8\" style=\"text-align:right\">$fraisport->type :</td>\n";                $mail .="<td colspan=\"1\" style=\"text-align:right\">".number_format($fraisport->tarif,2)." Eur. </td>\n";                $mail .="</tr>\n";                                //total HT                $mail .="<tr bgcolor=\"#D7D7D7\">\n";                $mail .="<td colspan=\"8\" style=\"text-align:right\">Total HT :</td>\n";                $mail .="<td colspan=\"1\" style=\"text-align:right\">".number_format($infos->prixht,2)." Eur. </td>\n";                $mail .="</tr>\n";                                //Montant TVA                $mail .="<tr bgcolor=\"#D7D7D7\">\n";                $mail .="<td colspan=\"8\" style=\"text-align:right\">Montant TVA :</td>\n";                $mail .="<td colspan=\"1\" style=\"text-align:right\">".number_format($infos->montanttva,2)." Eur. </td>\n";                $mail .="</tr>\n";                                //Prix total du panier                $mail .="<tr bgcolor=\"#2e6ab1\" style=\"color:#FFF\">\n";                $mail .="<td colspan=\"8\" style=\"text-align:right\">Total TTC :</td>\n";                $mail .="<td colspan=\"1\" style=\"text-align:right\"><strong>".number_format($infos->prixfinal, 2)." Eur. </strong></td>\n";                $mail .="</tr>\n";           }           else           {                $mail .="<tr bgcolor=\"#2e6ab1\" style=\"color:#FFF\">\n";                $mail .="<td colspan=\"9\" style=\"text-align:right\"> </td>\n";                $mail .="</tr>\n";           }           $mail .="</table>\n";           $mail.= " <br />";           $mail.= " <br />";           $mail .= "<table width=\"535\" class=\"coordonneestab\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";           $mail .= "<tr>\n";           $mail .= "<td width=\"296\" valign=\"top\"> </td>";           $mail .= "<td width=\"239\" valign=\"top\">\n";           $mail .= "<span>Pascal Boucher <br /><img src=\"http://caratamp.fr/images/design/signature_pascal.png\" width=\"185\" height=\"109\" /></span>";           $mail .= "</td>\n";           $mail .="</tr>\n";           $mail .="</table>\n";                                 $mail .="<br />\n";           $mail .="</div>\n";           $mail .="</div>\n";           $mail .="<div class=\"footer\">                   <p class=\"coordonnees\">                       <b>CARATAMP'</b> est une enseigne de <b><a href='http://www.caragraph.fr' target='_blank'>CARAGRAPH'</a>                       </b> - Le Puy - 19240 ALLASSAC (19) - <b>tél. 06 07 63 01 49</b><br />                       <a href='http://caratamp.fr/index/infoetlib'>Loi informatique et liberté</a> -                        <a href='http://caratamp.fr/index/condgene'>Conditions générales de ventes</a><br />                   </p>                                      <p class=\"infosLegales\">Micro-Entreprise - TVA non applicable (Art. 293 B du CGI) - Siret 495 334 013 00010 - Code NAF 722C<br /></p>                   <p class=\"copyright\">                       <a href='http://www.caragraph.fr' target='_blank'>©Caragraph'</a>                   </p>                   </div>\n";           $mail .="</div>\n";           $mail .="</page>";                      return $mail;      } }

2

$html2pdf->Output(DOSSIERPDF.'exemple01.pdf', 'F');


ca ecrit le fichier sur le serveur, mais ca ne l'envoie pas au client... c'est donc normal que tu ai une page blanche !

si tu n'as pas besoin d'enregistrer le pdf sur le serveur, appelle juste la méthode Output() sans paramètres.


http://wiki.spipu.net/doku.php?id=html2pdf:fr:output

[nosmile]
Ancien pseudo : lolo

3

même j'ai regardé et le fichier n'est nul par.
Je test mon code html petit bout par petit bout et là j'ai un résultat donc je vais continuer jsqu'à trouver le lieu du bug

[edit]
sa marche, sa venait de div bizar.

Par contre j'ai un autre soucis, la longueur de mes tableau n'est pas prise en compte. Elle augmente ou diminue non en fonction de la longueur de chaque td voulu mais en fonction de l'espace pris par le texte inclus dans chaque. Personne a une idée?

4

comme précisé pas mal de fois dans le forum, il faut impérativement indiqué la largeur de tous les elements TD, TH, DIV, TABLE, P
Ancien pseudo : lolo