我使用这里描述的phpwkhtmltopdf How do I get WKHTMLTOPDF to execute via PHP?
将html转换为pdf
set_time_limit (0);
require_once __DIR__.'/vendor/autoload.php';
use mikehaertl\wkhtmlto\Pdf;
$pdf = new Pdf;
$pdf->addPage('<html><h1>PDF creation successfull</h1></html>');
$pdf->send('test.pdf');
if (!$pdf->send('test.pdf')) {
throw new Exception('Could not create PDF: '.$pdf->getError());
}
当我运行此操作时,我收到以下错误
致命错误:未捕获的异常'异常',消息'不能 创建PDF:加载页面(1/6)[&gt; ] 0%[======&gt; ] 10%'in /home/kpninfotech/public_html/pdfbin/convert.php:30堆栈追踪:#0 {main}抛出/home/kpninfotech/public_html/pdfbin/convert.php 第30行
我也试过从php运行exec命令
error_reporting(E_ALL);
ini_set('display_errors', '1');
$cmd = "/usr/bin/wkhtmltopdf http://www.kpninfotech.com test.pdf 2>&1";
echo $t = exec($cmd);
exit();
这里我也得到了同样的错误
[&GT; ] 0%[======&gt; ] 10%
但是当通过ssh执行时,pdf转换成功运行
但是我无法通过PHP执行,我如何通过PHP执行它?
我有VPS服务器运行centos 6.5,wkhtmltopdf版本0.12.1(带补丁qt)
答案 0 :(得分:0)
我解决了这个极端问题设置选项 disable-javascript 。
试试这个。
use mikehaertl\wkhtmlto\Pdf;
$pdf = new Pdf(array('disable-javascript'));
$pdf->addPage('<html><h1>PDF creation successfull</h1></html>');
$pdf->send('test.pdf');
if (!$pdf->send('test.pdf')) {
throw new Exception('Could not create PDF: '.$pdf->getError());
}