Vor einiger Zeit habe ich über die Möglichkeit geschrieben, wie man ganz einfach mit PHP ein PDF-Dokument generieren kann. Dies habe ich nun auch auf dieser Seite getestet und man kann nun jeden Eintrag direkt als PDF speichern.
Hierzu gibt es zwei Plugins; WP2PDF, das zwar sehr bekannt ist, aber leider nicht mehr weiterentwickelt wird und ContuttoPDF, ein sehr vielseitiges Tool auf der Basis von PHP5. Ich habe mich für letzteres entschieden.
Die Installation von ContuttoPDF ist recht einfach. Wie bei jedem WordPress-Plugin kopiert man die heruntergeladenen Dateien (vorher mit einem Programm wie 7zip entpacken) in den ordner wp-content/plugins/ und aktiviert diese im Administrationsbereich. Zusätzlich muss noch ein Ordner (wp-content/pdf-themes) für die Templates angelegt und Schreibrechte auf die Schriftarten (wp-content/plugins/contuttopdf/dompdf/lib/fonts) gegeben werden. Um zu testen, ob alles problemlos funktioniert, gibt es im Administrationsbereich ein Kompatibilitätstest. Ist dieser erfolgreich, kann durch den Befehl <?php contutto_pdfbutton('This page as PDF'); ?> ein Textlink in entsprechenden Template erstellt werden, die die Seite als PDF ausgibt. Ich habe mich für die Sitebar entschieden, da ich dort auch auf den RSS-Feed verlinke.
Bei mir kam es bei der Aktivierung des Plugins leider zu Formatierungsproblemen der eigentlichen Seite. Bei allen Einträgen, die zur Laufzeit aus der Datenbank geladen wurden, gab es Probleme bei der Anzeige der Sonderzeichen. Da meine Datenbank, der Server und Apache schon auf UTF-8 laufen und WordPress es die ganze Zeit eigentlich auch tat, verwunderte mich, dass auf einmal der Schriftsatz der Seite wieder auf ISO-8859-15 gestellt war. Ein Blick in den Quellcode von ContuttoPDF versprach abhilfe – die Variable $ctpdf_convert muss auf true gesetzt werden.
Da mir das default-Template nicht so gefällt, ich aber auch keine Alternativen gefunden habe, habe ich diverse Änderungen vorgenommen, um es nach meinen Bedürfnissen anzupassen. Dies sollte aber keine große Hürde darstellen, da es sich hauptsächlich um Änderungen auf CSS-Ebene handelte.
Das Generieren von PDF-Dokumenten ist sehr rechenintensiv und wenn man die Möglichkeit hat, sollte man PHP mehr Arbeitsspeicher zusichern.
Eine weitere nützliche Funktion, die ContuttoPDF bietet ist, dass bereits beim Schreiben eines Artikels bestimmt werden kann, ob und welcher Text wo sichtbar sein soll. Mit dem Tag [ screen ] [ /screen ] werden Ausgaben nur auf dem Bildschirm gemacht – das Pendant dazu bildet [ print ] [ /print ], was nur im PDF-Dokument sichtbar wird.
Weitere Informationen:
- http://bjoern-reinig.de/49
- http://www.zirona.com/software/wp-to-pdf/
- http://www.fob-marketing.de/marketing-blog-96-wordpress-pdf-plugins-und-utf-8.html



