Ich arbeite schon lange mit wkhtmltopdf unter Windows und jetzt musste ich das ganze auf einem Opensuse Linux Server zum fliegen bringen. Ich muss gestehen, dass ich etwas aus der Übung mit Linux bin, aber nach ein bisschen probieren hat es mit diesen Schritten funktioniert.
Zunächst musste ich wkhtmltopdf erst über Zypper installieren:
zypper install wkhtmltopdf
Da der Linux Server kein Display hat, sprich keine GUI, musste man noch zusätzlich xvfb-run installieren. Damit wird ein Buffer auf der Server für das Programm geschaffen, um die Ausgaben zu einer GUI abzufangen;
zypper install xvfb-run
Um jetzt die exec() Funktion nutzen zu können, muss man noch den Pfad zu den wkhtmltopdf Binaries finden, das kann man mit whereis machen:
whereis wkhtmltopdf
So jetzt hat man alles und kann mal einen Test machen, hier drucke ich heise.de in eine Test PDF Datei:
exec("xvfb-run -a /usr/bin/wkhtmltopdf https://heise.de test.pdf 2>&1")
Und nachdem Aufruf liegt die test.pdf Datei im gleichen Verzeichnis wie mein Testscript.