KnpSnappyBundle退出状态代码'127'表示出错了:

时间:2016-07-26 06:39:31

标签: symfony pdf-generation wkhtmltopdf

我在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'。

3 个答案:

答案 0 :(得分:0)

"二进制" chain是您安装wkhtmltopdf的计算机的静态路径。如果您通过命令行安装它,它应该是:

/usr/local/bin/wkhtmltopdf

如果您在供应商存储库中安装它,它应该在那里:

/path/to/Symfony/vendor/...

答案 1 :(得分:0)

我找到了一个有效的解决方案。

  • 在供应商symfony2中安装wkhtmltopdf
  • 在虚拟机中安装wkhtmltopdf
  • 在虚拟机中安装xvfb
  • 在usr / local / bin中创建一个wkhtmltopdf.sh文件,其中安装了wkhtmltopdf(xvfb-run -a -s" -screen 0 640x480x16" wkhtmltopdf --dpi 150 --zoom 0.6& #34; $ @")
  • 在config.yml中使用适当的路径,例如/usr/local/bin/wkhtmltopdf.sh

我希望它可以帮助某人

答案 2 :(得分:0)

在尝试找出同样的问题时,我注意到在这个主题的另一个post上需要在二进制位置指定根目录。添加%kernel.root_dir%为我解决了这个错误。试试这个:

binary:     %kernel.root_dir%/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64