2

我已经在现有的 Symfony 3.4 项目上安装了 KnpSnappyBundle。我已经用只有文本、没有图像、没有 css、没有 js 的 HTML 树枝测试了 PDF 生成器:它工作正常。

然后我使用绝对 URL(我在本地主机上工作)添加(到树枝)图像和 Bootstrap.Css 文件:PDF 生成器显示一个丑陋的错误:

The process "wkhtmltopdf --lowquality '/tmp/knp_snappy5aeb39ad71e767.56551505.html' '/tmp/knp_snappy5aeb39ad71ebf0.62787578.pdf'" exceeded the timeout of 60 seconds.

捆绑包有什么问题?我正在使用具有 8Gb RAM (ubuntu 16.04) 的 i7 笔记本电脑,我认为这不是机器配置的问题。

更新:我已经从命令行测试了 wkhtmltopdf 并且它确实转换了我的 twig :

wkhtmltopdf http://127.0.0.1:8000/eshop/admin/order/print/2 out.pdf

所以 wkhtmltopdf 对 localhost 上的绝对 URL 没有任何问题!

谢谢

4

1 回答 1

2

在这里找到了解决方案:https ://github.com/KnpLabs/KnpSnappyBundle/issues/82

从捆绑包中调用时,wk 似乎无法使用绝对 URL 找到资产(因此在 shell 中执行时),您必须指定绝对路径。创建一个树枝全局变量:

twig:
 globals:
  pathToWeb: "%kernel.root_dir%/../web"

然后在树枝中使用新变量而不是 assets() :

<link ... href="{{ pathToWeb }}/css/bootstrap.min.css"/>
<img ... src="{{ pathToWeb }}/images/logo.png"/>

奇迹般有效

于 2018-11-08T17:47:07.650 回答