//"... oder: wie erstelle ich mit möglichst wenig Aufwand ein sauber druckbares PDF einer bestehenden Internetseite?"//
Welcher Web-Entwickler steht nicht irgendwann einmal vor dem Problem, eine aufwändig gestaltete Webseite als PDF bereitstellen zu müssen? Spätestens bei der Verwendung des HTML5-Canvas-Elements, welches clientseitig im Browser "bestückt" wird, sind viele der bekannten Technologien nicht einsetzbar.
Abhilfe schafft hier ein etwas unkonventioneller Ansatz: [http://code.google.com/p/wkhtmltopdf/ wkhtmltopdf]
Das Besondere an diesem Tool ist die Möglichkeit, komplett ohne grafische Oberfläche ("headless") eine bestehende Webseite (inklusive Ausgabe der JavaScripts) in eine PDF-Datei auszugeben. Da das Tool die Webkit-Browserengine zum Rendern verwendet, benötigt es sehr wenige bis gar keine Anpassungen an der Webseite selbst, um ein gutes Ergebnis zu erzielen.
Die neueste Release ist derzeit 0.11.0-rc1. Wenn man damit Canvas-Elemente rendern möchte, sollte man //wkhtmltopdf// mit einem Framebuffer (zum Beispiel [http://de.wikipedia.org/wiki/Xvfb Xvfb]) ausführen, oder das ältere Release 0.9.9 verwenden.
Ein gutes Beispiel ist die [http://de.wikipedia.org/wiki/Geocaching Geocaching]-Website [http://9eo.de "9eo.de"], welche hautpsächlich mittels JavaScript generiert wird. Dort wird eine Statistikseite (http://9eo.de/view?uid=3657968) völlig automatisiert als [http://is.gd/MHjmbF Bitmap mit wkhtmltoimage] gerendert.
//Adventsbloggen 2012: Das war ein Gastbeitrag von Malte. Er ist selbständiger IT-Dienstleister und Anwendungsentwickler. Website: http://neo-soft.org //
http://klumpp.net/blog/ am : Adventsbloggen 2012: (Fast) jeden Tag etwas zu lesen.