我在knpSnappyBundle上有这个错误,我正在尝试生成一个pdf然后通过电子邮件发送它。
我的配置如下所示:
knp_snappy:
pdf:
enabled: true
binary: \vendor\h4cc\bin\wkhtmltopdf-amd64\bin\wkhtmltopdf-amd64
options: []
然后我的控制器:
$html = $this->render('AppUserBundle:Emails:envoi-export.html.twig', [
'pointagesList' => $pointagesList,
'user' => $user,
'date' => new \DateTime()
]);
$filename = sprintf('test-%s.pdf', date('Y-m-d'));
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
[
'Content-Type' => 'application/pdf',
'Content-Disposition' => sprintf('attachment; filename="%s"', $filename),
]
);
完整的错误消息:
退出状态代码'127'表示出错了: stderr:“sh:1:/ usr / local / bin / wkhtmltopdf:找不到 “ 标准输出:“” 命令:/ usr / local / bin / wkhtmltopdf --lowquality'/ tmp / knp_snappy57970542debe22.97700913.html''/ tmp / knp_snappy57970542dec563.25042325.pdf'。
答案 0 :(得分:0)
"二进制" chain是您安装wkhtmltopdf的计算机的静态路径。如果您通过命令行安装它,它应该是:
/usr/local/bin/wkhtmltopdf
如果您在供应商存储库中安装它,它应该在那里:
/path/to/Symfony/vendor/...
答案 1 :(得分:0)
我找到了一个有效的解决方案。
我希望它可以帮助某人
答案 2 :(得分:0)
在尝试找出同样的问题时,我注意到在这个主题的另一个post上需要在二进制位置指定根目录。添加%kernel.root_dir%
为我解决了这个错误。试试这个:
binary: %kernel.root_dir%/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64