2014-09-23 10 views
7

Ich benutze wkhtmltopdf, um PDFs aus HTML zu generieren, ich versuche, den folgenden Befehl über PHP exec() -Funktion auszuführen, aber seine erzeugt das pdf nicht, ich zeige aber keinen fehler an. Aber wenn ich denselben Befehl über die Befehlszeile ausgeführt habe, funktioniert es.Nicht in der Lage, wkhtmltopdf commad über die Funktion exec() in PHP auszuführen, aber der gleiche Befehl funktioniert in der Befehlszeile

Unten ist mein PHP-Code, den ich benutze, um den pdf-Befehl auszuführen.

$command = "wkhtmltopdf -s A4 /inputhtmlfilepath/test.html /outputfilepath/output.pdf"; 
exec($command); 

Einige Informationen über mein Setup:

Betriebssystem - Ubuntu 12.04

PHP Version - 5.4.3

Jede Hilfe würde geschätzt, Danke.

+0

Verwenden Sie den vollständigen Pfad zu den Dateien; Stellen Sie sicher, dass der Webserver-Benutzer Rechte an den Verzeichnissen/Dateien hat. –

+1

@Digital, Ich habe den vollständigen Pfad für die Eingabe- und Ausgabedateien angegeben und der Ordner hat die volle Berechtigung für alle Benutzer, jetzt auf 777 gesetzt. Immer noch kein Glück. –

+1

Verwenden Sie die Optionen [output und return var] (http://php.net/manual/en/function.exe.php), um zu sehen, was passiert. –

Antwort

9

Wenn Sie "Verbindung zum X-Server-Fehler nicht herstellen" können, versuchen Sie es bitte.

1.Install die xvfb Paket

sudo apt-get install xvfb 

2.Create eine Datei als 'wkhtmltopdf.sh' und fügen Sie den folgenden Code hinzu, dass und speichern

xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "[email protected]" 

3.Then diese Datei verschieben/usr/local/bin und

sudo chmod 555 /usr/local/bin/wkhtmltopdf.sh 

4.Then Berechtigungen geben versuchen, pdf erstellen, indem Sie den Befehl ausgeführt wird.

/usr/local/bin/wkhtmltopdf.sh input.html output.pdf 
+1

Das funktioniert für mich. Vielen Dank –