Выполнить wkhtmltopdf из PHP

Я отлично справляюсь с командной строкой Linux:

wkhtmltopdf entry.html output.pdf

Но из кода PHP не работает следующее:

exec ('wkhtmltopdf entry.html output.pdf');

Интересно, у меня есть googled и много не проверенных решений и без объяснения причин, почему это проблема. Спасибо, если у вас хорошие.

У wkhtmltopdf есть привязки , один из них для PHP. Вы можете дать им выстрел.

была та же проблема, и я не думаю, что кто-то еще должен тратить> 3 часа:

решение находится здесь: ошибка wkhtmltopdf в журнале apache

вам просто нужно установить xvfp "для эмуляции x-среды"

 exec("xvfb-run -a wkhtmltopdf test.html output.pdf") 

Здесь обертка PHP вокруг wkhtmltopdf http://mikehaertl.github.com/phpwkhtmltopdf/ Очень простая

Возможно, wkhtmltopdf не находится в переменной PATH для www-данных.

 whereis wkhtmltopdf 

расскажет вам, где находится бинарный файл; Бинарники обычно находятся в /usr/bin/... на * nix машинах. Затем замените wkhtmltopdf например, на /usr/bin/wkhtmltopdf в вашей команде.

 /usr/bin/wkhtmltopdf entry.html output.pdf 

Просто эта проблема – простое решение в моем случае: я не понимал, что PHP находится в безопасном режиме. Выключил безопасный режим, и он работал нормально!

Я боролся с той же проблемой.

Мое решение на сервере Windows 2008 R2 с PHP 5.4 :

 exec('C:\inetpub\wwwroot\mywebsite\subdir\wkhtmltopdf input.html output.pdf'); 

И это было (после> 5 часов поиска в сети, включая это), новый файл с именем output.txt, переименовал его в output.pdf и предоставил пользователю все права на него.

Это мои опросы:

  exec(C:\inetpub\wwwroot\mywebsite\wkhtmltopdf ); echo(exec(wkhtmltopdf.exe cache.html output.pdf)); exec("xvfb-run -a wkhtmltopdf test.html output.pdf") $execute = "xvfb-run -a wkhtmltopdf cache.html output.pdf"; $out = shell_exec("/path/to/wkhtmltopdf --version"); echo($out); $out = passthru('/usr/local/bin/wkhtml2pdf 

Надеюсь, что это полезно для других