PHP - PDF erzeugen
Es gibt verschiedene Libs um PDF Dokumente dynamisch zu erzeugen. Bekannt sind z.B. fpdf oder mpdf
fpdf
Mit fpdf kann man auf sehr viele Eigenschaften des pdfs auf sehr niedriger Ebene zugreifen. Es lassen sich z.B. Milimeter genaue Angaben machen. Eingesetzt z.B. beim Peter und Paul PUP Manager zum erzeugen der Mitgliedskarten.
Zu fpdf gibt es die fpdfi Library, diese erlaubt es Templates zur Erstellung zu nutzen. In der TYPO3 fpdf Extension ist fpdfi enthalten
www.fpdf.org
fpdi.setasign.de
mpdf
mpdf eignet sich für das schnelle erzeugen von pdfs aus html Dokumenten. Es unterstützt auch CSS.
Links
http://www.fpdf.de (nicht die original Seite aber dafür auf deutsch)
http://fpdf.fruit-lab.de/ -> Font Dateien für fpdf erzeugen
http://www.id.uzh.ch/cl/zinfo/fpdf/doc/
Beispiele
E-Mail Anhang mit mpdf
http://wiki.zone30.info/wikizone/index.php/PHP_-_E-Mail_versenden
Mitgliedskarte mit fpdf in TYPO3 Extension
Code Ausschnitt:
PDF Datei übergeben (korrekte Header)
Quelle: http://christian-asche.com/blog/2006/03/13/pdf-dateien-mit-php-ausgeben/ Zugriff 7/2013
Eigentlich eine einfache Übung, wäre da nicht wieder der Internet Explorer. Ein einfacher Versuch schlägt bei https (SSL) fehlt:
$pdfFilename = '';
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="'.$pdfFilename.'"');
readfile($pdfFilename);
Der IE meldet, daß er die Datei nicht speichern kann. Abhilfe schafft nur folgender header:
// Download Bug IE bei SSL
header('Pragma: anytextexeptno-cache', true);
Komplettes Beispiel:
$pdfFilename = '';
header('HTTP/1.1 200 OK');
header('Status: 200 OK');
// Download Bug IE bei SSL
header('Pragma: anytextexeptno-cache', true);
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="'.$pdfFilename.'"');
readfile($pdfFilename);