KnpSnappyBundle和Symfony 3.4:图像和/或css导致超时

时间:2018-05-03 16:43:59

标签: symfony pdf timeout wkhtmltopdf knp-snappy

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

然后我使用绝对URL(我在localhost上工作)添加了(到树枝上)一个图像和一个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的i7笔记本电脑(ubuntu 16.04),我不认为这是机器配置的问题。

更新:我已经从命令行测试了wkhtmltopdf,它确实转换了我的树枝:

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

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

由于

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

像魅力一样工作