Achtung: Diese Seite enthält Partner- und Werbe-Links. Daher ist diese Seite im Gesamten als Werbeanzeige zu verstehen!
Wer serverseitig PDF-Dateien erstellen möchte, hat nach Abhängigkeit der verwendeten Programmiersprache und der verwendeten Frameworks eine große Bandbreite an Möglichkeiten. Ich entwickle meine Server-Anwendungen meist auf Basis des Symfony-Frameworks und erzeuge entsprechende PDF-Dateien, in dem ich sauberes HTML mit dem Tool wkhtmltopdf einfach konvertiere. Vereinfacht wird das ganze außerdem durch das Symfony-Bundle Snappy.
Einzig die Installation von wkhtmltopdf ist etwas komplizierter, vor allem wenn diese automatisiert auf der Infrastruktur von Amazon Webservices passieren soll. Eine Anleitung:
Die Installation auf AmazonsElastic Beanstalk wird über eine .config
-Datei geregelt, die sich in einem Ordner namens .ebextensions
befindet und mit der Anwendung auf den Server geladen wird. Die Datei kann nach Belieben benannt werden, ich habe sie install-wkhtmltopdf.config
getauft.
Folgende Konfiguration führt sechs Linux-Befehle der Reihe nach aus und installiert damit wkhtmltopdf:
.ebextensions/install-wkhtmltopdf.config
container_commands:
1_install_wkhtmltopdf:
command: yum -y install fontconfig libXrender libXext xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi freetype libpng zlib libjpeg-turbo openssl icu
ignoreErrors: true
2_install_wkhtmltopdf:
# see: https://wkhtmltopdf.org/downloads.html for updates
command: wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz --dns-timeout=5 --connect-timeout=5
test: test ! -f .wkhtmltopdf
3_install_wkhtmltopdf:
command: tar -xJf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
test: test ! -f .wkhtmltopdf
4_install_wkhtmltopdf:
command: cp wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
test: test ! -f .wkhtmltopdf
5_install_wkhtmltopdf:
command: cp wkhtmltox/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage
test: test ! -f .wkhtmltopdf
6_install_wkhtmltopdf:
command: touch .wkhtmltopdf
Die manuell erzeugte Datei .wkhtmltopdf
sorgt übrigens nur dafür, dass wkhtmltopdf nicht bei jedem Software-Update der Server-Anwendung erneut installiert wird, sondern nur dann, wenn es auch tatsächlich fehlt.
Wer auf den Elastic Beanstalk als bequemen Container verzichtet und auf individuell angepasste EC2-Maschinen setzt, kann die Befehle auch einfach der Reihe nach manuell in der Konsole eingeben:
yum -y install fontconfig libXrender libXext xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi freetype libpng zlib libjpeg-turbo openssl icu
wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz --dns-timeout=5 --connect-timeout=5
tar -xJf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
cp wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
cp wkhtmltox/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage