2010-12-29 13 views
2

Ich habe eine Form wie die folgende Rechnungmit php nach pdf drucken?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
dir="<?php echo $direction; ?>" 
lang="<?php echo $lang; ?>" 
xml:lang="<?php echo $lang; ?>"> 
<head> <title><?php echo $title; 
?></title> <link rel="stylesheet" 
type="text/css" href="theme/<?php echo 
$template; 
?>/stylesheet/stylesheet.css" /> 
<style type="text/css"> body { 
background: #FFFFFF; } </style> 
</head> <body> 

<div style="page-break-after: always; 
"> <table width="100%"> <tr> 
    <td width="auto" align="left"><a href="<?php echo $url_logo; ?>" 
title="<?php echo $_name; ?>"><?php 
echo "<img src=".$logo." alt=\"Logo 
Store\" style=\"border: none;\" />"; 
?></a></td> 
    <td width="*" valign="middle"><h1><?php echo 
$heading_title; ?></h1></td> </tr> 
</table><div class="line"></div> 
<div class="div_"> 
    <table width="100%"> 
     <tr> 
     <td> 
      <?php echo $_address; ?><br /> 
      <?php if ($telephone) { ?> 
      <?php echo $store_telephone; ?><br /> 
      <?php } ?> 
      <?php echo $_email; ?><br />   </td> 
     <td align="right" valign="top">  <table> 
      <?php if ($invoice_id) { ?> 
      <tr> 
       <td><b><?php echo $txt_invoice_id; ?></b></td> 
       <td>:&nbsp;<?php echo $invoice_id; ?></td> 
      </tr> 
      <?php } ?> <?php if ($historys) { ?> <?php foreach ($historys as $history) { ? 
      <tr> 
       <td><b><?php echo $column_date_added; ?></b></td> 
       <td>:&nbsp;<?php echo $history['date_added']; ?></td> 
      </tr> 
      <tr> 
       <td><b><?php echo $column_status; ?></b></td> 
       <td>:&nbsp;<?php echo $history['status']; ?></td> 
      </tr>  <?php } ?>  <?php } ?> 
      <tr> 
       <td><b><?php echo $txt_order_id; ?></b></td> 
       <td>:&nbsp;<?php echo $order_id; ?></td> 
      </tr>  <?php if ($shipping_method) { ?> 
      <tr> 
       <td><b><?php echo $txt_shipping_method; ?></b></td> 
       <td>:&nbsp;<?php echo $shipping_method; ?></td> 
      </tr>  <?php } ?> 
      <tr> 
       <td><b><?php echo $txt_payment_method; ?></b></td> 
       <td>:&nbsp;<?php echo $payment_method; ?></td> 
      </tr> 
      </table> 
      </td> 
     </tr> 
    </table> </div> </div> </body> </html> 

Rechnungsformular beim Zugang durch http://www.mysite.com/index.php?print=page/invoice&id=952 und Rechnungs Erweiterung ist .tpl

ich mit FPDF versucht habe (http://www.fpdf.org /), aber gescheitert, und es scheint, dass FPDF nicht übereinstimmen mit dem CSS, dann habe ich versucht, tcpdf (http://www.tcpdf.org) in Bezug auf http://www.tcpdf.org/examples/example_054.phps zu verwenden, aber sind nur Fehler mit PHP-Code sichtbar: z <?php echo $history['status']; ?>

Hat jemand schon Erfahrung oder ein Problem? Bitte teilen Sie hier, oder haben Sie die gleiche Probe? Vielen Dank im Voraus

+0

Sie möchten eine PDF aus HTML-Code erzeugen, richtig? –

+2

versuchen Sie mit Dompdf. http://code.google.com/p/dompdf/ –

+0

@ Pekka, ich möchte pdf von der Rechnungsseite wie oben gezeigt, im Inneren enthalten einige PHP-Code, danke – user485783

Antwort

3

Das große Problem ist, dass es keine Bibliothek gibt, die mit HTML-Code gut umgehen kann.

dom-pdf ist ein sehr guter, aber immer noch große Probleme mit verschachtelten Tabellen eine Seite bricht. aus Ihrem Grund sollte es den Trick tun, denke ich. Es kann auch CSS ein bisschen behandeln. Das Sicherheitsproblem von DOMPDF muss nur geringfügig geändert werden, damit DOMPDF nur im cgi-Modus funktioniert. Dadurch wird jeglicher Zugriff von externen Quellen verhindert und es kann nur von Ihrer Anwendung aus aufgerufen werden.

Wenn Sie die Tabelle selbst erstellen können, empfehle ich dringend, fpdf zu verwenden. Sie werden nicht in der Lage sein, mit CSS umzugehen, aber es gibt viele Formatierungsmöglichkeiten mit fpdf.

für dom-pdf haben Sie einen Link von Kinjal oben. und fpdf hast du schon gefunden.

+0

"Es gibt keine Bibliothek, die mit HTML-Code gut umgehen kann" - also überlasse es einer bewährten Rendering-Engine, wie ich es vorschlage. – marcog

+0

Hallo, ich bin nicht vertraut mit etwas von PDF-Bibliothek, aber fpdf scheinen harte Code für mich, weil alles zuerst erstellen müssen, dompdf scheint einfach als fpdf aber viel Sicherheitsrisiko, und jetzt möchte ich eine andere Alternative sehen, z. tcpdf, html2pdf (http://html2pdf.fr/en/default) oder wkhtmltopdf hat jemand Erfahrung mit? vielen Dank für Ihre Vorschläge – user485783

+0

Wenn es nur eine Frage der Zeit ist, dann brauchen Sie die gleiche Zeit, um einen der späteren Vorschläge zu erstellen und in die fpdf-Klasse zu gelangen. Hinweis dafür: Konzentrieren Sie sich auf Multi-Zelle statt Zelle. – helle

3

Wie Helle sagte, ist FPDF ein wirklich nettes Tool zum Generieren von PDFs aus PHP. Obwohl Sie FPDF verwenden, müssen Sie in das Handbuch einsteigen, da HTML nicht in PDFs umgewandelt wird. Aus meiner Erfahrung ist FPDF jedoch ziemlich einfach zu verwenden und Sie sollten nicht zu viel Mühe damit haben.

+0

Ich habe das schon mehrere Male probiert, aber ich habe noch kein Glück, es scheint mir ein schwerer Code zu sein. – user485783

1

wkhtml verwendet die WebKit-Rendering-Engine und erzeugt somit fantastische Ergebnisse. Siehe meine Antwort auf Converting html to pdf in php? für weitere Details.

+0

Ja, es scheint großartig, aber ich suche immer noch die Probe in Bezug auf meinen Rechnungscode oben, könnten Sie eine Idee haben? Danke – user485783

+0

@user Welches Dateiformat ist die Rechnung? Wir nehmen alle HTML an, aber vielleicht nicht. – marcog

+0

das Dateiformat meiner Rechnung ist .tpl verwenden als Vorlage Website, in der .tpl-Datei haben eine Menge PHP-Code wie oben gezeigt. – user485783