2014-09-23 6 views
7

Używam wkhtmltopdf do generowania pdf z html, próbuję uruchomić poniższą komendę za pomocą funkcji PHP exec(), ale jej nie generuje pdf, ale nie pokazuję żadnego błędu. Ale kiedy uruchomiłem to samo polecenie przez linię poleceń, działa.Nie można uruchomić pliku wkhtmltopdf przez funkcję exec() w php ale to samo polecenie działa na linii poleceń

Poniżej znajduje się mój kod PHP, którego używam do wykonania polecenia pdf generate.

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

Kilka informacji o mojej konfiguracji:

systemu operacyjnego - Ubuntu 12.04

PHP Wersja - 5.4.3

Każda pomoc będzie mile widziane, Dzięki.

+0

Użyj pełnej ścieżki do plików; upewnij się, że użytkownik serwera sieciowego ma prawa do katalogów/plików. –

+1

@Digitial, podałem pełną ścieżkę dla plików wejściowych i wyjściowych, a folder ma pełne pozwolenie dla wszystkich użytkowników, ustawiono teraz na 777. Wciąż nie ma szczęścia. –

+1

Użyj opcji [wyjście i powróć var] (http://php.net/manual/en/function.exec.php), aby zobaczyć, co się dzieje. –

Odpowiedz

9

Jeśli otrzymujesz komunikat "nie można połączyć się z błędem serwera X", spróbuj tego.

1.Install pakiet Xvfb

sudo apt-get install xvfb 

2.Create plik jako 'wkhtmltopdf.sh' i dodaj następujący kod do tego i zapisać

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

3.Then przenieść ten plik do/usr/local/bin i daje uprawnienia

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

4. Następnie spróbuj utworzyć plik pdf, uruchamiając polecenie.

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

To działa dla mnie. Dzięki –

Powiązane problemy