Я отлично справляюсь с командной строкой 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
Надеюсь, что это полезно для других