使用Snappy wkhtmltopdf,内容与PDF不兼容

时间:2015-05-06 07:32:02

标签: php wkhtmltopdf

我正在从事一个项目。我试图使用我的图表和动态表格生成报告。我试图使用 wkhtmltopdf ,但我无法处理复杂性。但是,我在 wkhtmltopdf 的其他问题上阅读了大部分回答,所以我决定尝试snappy这是一个sugeestion。下面是我的代码。

  require_once 'C:/wamp/www/Mamca/lib/snappy/src/autoload.php';

  use Knp\Snappy\Pdf;

  $snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
  header('Content-Type: application/pdf');
  header('Content-Disposition: attachment; filename="file.pdf"');
  echo $snappy->getOutput('http://www.github.com');

但生成的pdf没有打开,来自pdf阅读器状态的错误"无法打开文件"

2 个答案:

答案 0 :(得分:2)

没有必要使用snappy将html转换为pdf。在snappy上花了一天后,我使用php的简单exec()函数将html转换为pdf。

$exe_path = '..path to your exe file..\wkhtmltopdf.exe';
$file_html_path = '..path of your html file..\report.html';
$file_pdf_path  = '..path of your pdf file..\report.pdf';

$cmd = <<<EOT
"$exe_path" --orientation "Landscape" --page-size "A4" --viewport-size 
"1280x1024" "$file_html_path" "$file_pdf_path" 2>&1
EOT;

//echo $cmd;die;
exec($cmd,$output,$return); 


Please note here:
$cmd is a command 
$output will return response of exec execute successfully or return error code and message
$return will return a boolean value 0 or 1 zero means success or 1 means error

答案 1 :(得分:1)

require_once 'C:/wamp/www/Mamca/lib/snappy/src/autoload.php';

use Knp\Snappy\Pdf;

**$snappy = new Pdf('C://DEV/wkhtmltopdf/bin/wkhtmltopdf.exe');**
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="file.pdf"');
echo $snappy->getOutput('http://www.github.com');

我刚改变了wkhtmltopdf的路径并且它有效。