Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Empfehlung: dompdf

Neulich stand das Thema „Rechnungsgenerierung per PDF“ auf der Agenda. Da ich im PDF-Business noch ein unbeschriebenes Blatt war, stand erstmal etwas Recherche an. Zuerst habe ich mir FPDF angeschaut. Ganz ordentliche Dokumentation und soweit auch sehr flexibel, die Tutorials sind ein guter Einstieg. Allerdings ist die aktuellste Version vom Juni 2011, FPDF wird nicht mehr weiterentwickelt.

Danach war der Platzhirsch dran: TCPDF. Aktive Weiterentwicklung und extrem mächtig. Die Beispiele zeigen schon, dass mit TCPDF wohl alles möglich ist. Und dennoch, ich hab‘ recht schnell schlechte Laune dabei bekommen:

$pdf->MultiCell(0, 0, $text, 1, 'L', 0, 0, '', '', true); 

Ehm, ja. Hat sicher alles seine Daseinsberechtigung und ist bestimmt sehr durchdacht – mir war es aber für ein kleineres Projekt zu viel des Guten. Generell schleppen alle PDF-Funktionen einen riesigen Berg an Parametern mit sich rum, TCPDF wirkt als wäre es unkontrolliert gewachsen. Nichtsdestotrotz, eine ganz ordentliche Unterstützung von HTML ist mit dabei – siehe dieses Beispiel mit Code dazu.

Enter dompdf

Nächster Kandidat auf der Agenda war das ebenfalls aktiv weiterentwickelte dompdf, welches komplett auf die Verwendung von HTML und CSS für die PDF-Generierung setzt. Naturgemäß ist die Verwendung von HTML im Print-Bereich schwierig: korrekt platzierte Seitenumbrüche seien etwa genannt. Trotz dessen: dompdf hat mich vom Fleck weg überzeugt. Quasi vollständige CSS 2 Unterstüzung sorgt für sauberen Code – die grässlichen cellpadding = … width = … – Tabellen wie man sie unter TCPDF gewohnt ist sind obsolet. Zu den Beispielen gehts hier lang.

Ein paar Sahnestückchen noch: Absolute Positionierung klappt wunderbar. Das ist für Header und Footer-Elemente von besonderer Bedeutung. Auch die Verwendung von padding und margin fühlt sich an wie im Browser, insgesamt macht die Library einen sexy Eindruck. Abschließend noch ein kleines Beispiel:

require_once("dompdf/dompdf_config.inc.php");                 $html = '<!doctype html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style>     #title { font-size: 35px; }     #footer { position: absolute; bottom: -10px; font-size: 10px; } </style> </head> <body> <h2 id="title">Rechnung / Lieferschein Nr. 12/330 vom 28.06.2012</h2>  <table id="order">    ... </table>  <div id="footer">     XYZ GmbH, Geschäftsführer: Manfred Mustermann. Handelsregistergericht HRB Nr. 1234 · Ust-IdNr. DE 1234567 · St-Nr. 7654321<br /> </div> </body> </html>';   $dompdf = new DOMPDF(); $dompdf->load_html($html); $dompdf->set_paper("a4", 'portrait');  $dompdf->render(); $dompdf->stream("rechnung.pdf", array("Attachment" => 0)); 

So hab ich mir das vorgestellt ;). Seitenumbrüche? Auch kein Problem:

<p style="page-break-before: always"> </p>  

Abschließend sei noch das html2pdf Projekt aus Frankreich erwähnt, das einen ähnlichen Ansatz wie dompdf verfolgt. Ausprobiert hab‘ ichs allerdings nicht.