我正在尝试使用wkhtmltopdf库和symfony2包装器KnpSnappyBundle构建发票pdf。
我想在wkhtmltopdf选项footer-html的每个页面上添加一个页脚。在命令行中,一切正常,我的pdf已构建,每页都重复一个页脚。但是当我使用捆绑服务时:
$snappy = $this->get('knp_snappy.pdf');
$snappy->setOption('footer-html', 'http://www.google.com');
$content = $snappy->getOutputFromHtml($html);
return new Response(
$content,
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="file.pdf"'
)
);
它会返回错误:
The exit status code '1' says something went wrong:
stderr: "Loading pages (1/6)
[> ] 0%
[======> ] 10%
Error: Failed loading page http://www.google.com (sometimes it will work just to ignore this error with --load-error-handling ignore)
Exit with code 1 due to network error: HostNotFoundError
"
stdout: ""
command: C:\wkhtmltopdf\bin\wkhtmltopdf.exe --lowquality --dpi "300" --margin-bottom "0" --margin-left "0" --margin-right "0" --margin-top "0" --page-size "A4" --background --encoding "utf-8" --footer-html "http://www.google.com" "http://www.google.com" "test.pdf".
是否已经成功使用了KnpSnappyBundle的footer-html选项?
答案 0 :(得分:0)
我认为问题在于这一行:
$snappy->setOption('footer-html', 'http://www.google.com');
setOption()方法中的第二个参数是在本地文件系统上查找html文件。正如它目前所写,它会尝试将Google主页作为页脚包含在pdf的每个页面上。尝试这样的事情:
$snappy->setOption('footer-html', 'path/to/footer.html');
$snappy->getOutput('https://google.com');
请注意,.html
很重要,非.phtml
等非标准扩展名会导致错误。