KnpSnappyBundle 退出状态代码“127”表示出现问题:

问题描述 投票:0回答:5

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

symfony pdf-generation wkhtmltopdf
5个回答
3
投票

我解决了问题,它的发生是因为系统没有安装

wkhtmltopdf
插件。 请点击链接安装此插件:-

希望这对未来的努力有所帮助。


0
投票

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

/usr/local/bin/wkhtmltopdf

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

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

0
投票

我找到了可行的解决方案。

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

我希望它可以帮助别人


0
投票

在尝试解决同样的问题时,我在关于此主题的另一篇post中注意到需要在二进制位置中指定根目录。添加

%kernel.root_dir%
为我解决了这个错误。试试这个:

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

0
投票

我替换了官方readme中给出的命令

cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/

与以下一个

cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
© www.soinside.com 2019 - 2024. All rights reserved.