Graphite_TrainingShowoff habe ich ja bereits in einem früheren Blogpost näher behandelt. Heute möchte ich nun etwas über die PDF-Generierung mit Showoff berichten, da hier die ein oder andere Stolperstelle überwunden werden muss.

Generell gibt es drei Möglichkeiten um über Showoff PDF’s zu erstellen, für die ersten beiden muss Showoff zwingend im Präsentationsmodus mit showoff serve gestartet sein. Über den Aufruf http://localhost:9090/pdf, der übrigens auch über einen Button im Presenter-Modus ausgewählt werden kann, ist es nun möglich ein PDF der Präsentation zu erstellen. Leider funktioniert diese Methode nur mit der Masterpräsentation, d.h. supplementäre Aufrufe wie für Exercises oder Solutions (siehe: https://github.com/puppetlabs/showoff/blob/master/documentation/AUTHORING.rdoc) funktionieren damit nicht.

Die zweite Möglichkeit ist der Aufruf über http://localhost:9090/print im Druckmodus. Das Drucken wird hier noch manuell durchgeführt, also brauchen wir dafür einen lokalen PDF-Drucker. Im Gegensatz zur ersten Methode können hier auch die ergänzenden Bereiche beispielsweise über http://localhost:9090/supplemental/exercises aufgerufen werden. Beide bisher vorgestellten Möglichkeiten haben jedoch einige Probleme gemeinsam: Unterschiedliche Browservarianten und teilweise auch verschiedene Browserversionen interpretieren das dahinter liegende CSS oft anders. Dadurch bekommt man leider oft sehr schlechte Druckergebnisse. Ein weiteres Problem ist das diese Vorgänge nicht automatisierbar sind und daher immer von jemandem manuell durchgeführt werden müssen.

Daher nun also die dritte Möglichkeit: Das Showoff-Kommando lässt sich auf der CLI mit einem Parameter namens static aufrufen, dazu muss die Präsentation also nicht einmal gestartet werden. Dieser static-Parameter unterstützt auch die supplementären Teile:

# showoff static print
# showoff static supplemental exercises

Danach befindet sich im neuen Unterordner “static” eine HTML-Datei (index.html). Mit weiteren Tools wie beispielsweise wkhtmltopdf kann nun daraus im Anschluss ein PDF-Dokument erstellt werden. Der große Vorteil dabei ist, das nun ganz einfach auch Seitenzahlen oder ein Copyright-Hinweis hinzugefügt werden kann. Ein Beispielaufruf von wkhtmltopdf sieht so aus:

# wkhtmltopdf -s A5 --print-media-type --footer-left [page] --footer-right '© NETWAYS' static/index.html /HAPPY/NEW/YEAR.pdf

Wer nun schon ganz gespannt auf das Ergebnis ist, dem möchte ich unsere Trainings nahe legen, denn da kommt genau das zum Einsatz.

Markus Waldmüller

Autor: Markus Waldmüller

Markus war bereits mehrere Jahre als Systemadministrator in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Lead Senior Consultant gelandet. In seiner Freizeit ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.