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

У меня это работает нормально из командной строки Linux:

запись wkhtmltopdf.вывод html.формат PDF

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

exec ('запись wkhtmltopdf.вывод html.pdf');

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

6 ответов


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-data.

whereis wkhtmltopdf

скажет вам, где находится двоичный файл; двоичные файлы обычно находятся в /usr/bin/... on * 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/wkhtmlto­pdf --version"); echo($out); 
  $out = passthru('/usr/local/bin/wkhtml2pdf

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