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;
}
}