2

我正在尝试使用 Barryvdh/snappy 在 Laravel 5.6 中创建 PDF。我的config/snappy.php样子

'pdf' => array(
    'enabled' => true,
    'binary'  => 'C:/xampp/htdocs/pdftesting/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf',
    'timeout' => false,
    'options' => array(),
    'env'     => array(),
),

我的控制器看起来像,

        $pdf = PDF::loadView('pdf',$data);
        return $pdf->download('test.pdf');

但我得到这个错误,

退出状态代码 '1' 表示出了点问题:\n stderr: "'C:/xampp/htdocs/pdftesting/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf' 未被识别为内部或外部命令,\ r\n 可运行的程序或批处理文件。\r\n "\n stdout: ""\n 命令:C:/xampp/htdocs/pdftesting/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf --lowquality --images --enable-javascript --javascript-delay "10" "C:\WINDOWS\TEMP\knp_snappy5ad430445b31e9.92776484.html" "C:\WINDOWS\TEMP\knp_snappy5ad430445fac87.79827170.pdf"

4

4 回答 4

1

试试这个解决方案https://github.com/barryvdh/laravel-snappy/issues/60并寻找 STAMBOULI ABDELKARIM 的评论,它对我有用。

使用 DomPDF 生成图表很难/不可能,开发人员 Barryvdh 也指出了这一点

于 2019-03-01T07:17:26.167 回答
0

我相信这是一个 Windows 错误。尝试将Wkhtmltopdf bin文件夹添加到路径中。参考这篇文章

参考这张图片

于 2019-09-10T18:17:50.987 回答
0

我认为如果您将文件复制到公共路径并在 config/snappy 文件中编辑二进制路径,您可以做到这一点

        'pdf' => [
    'enabled' => true,
    'binary'  => public_path('wkhtmltopdf/bin/wkhtmltopdf.exe'),
    'timeout' => false,
    'options' => [],
    'env'     => [],
],

'image' => [
    'enabled' => true,
    'binary'  => public_path('wkhtmltopdf/bin/wkhtmltoimage.exe'),
    'timeout' => false,
    'options' => [],
    'env'     => [],
],

或在 wkhtmltopdf 'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"' 的 bin 路径中添加双引号

于 2019-12-03T07:02:31.420 回答
0

您没有提到是否在 Windows 上安装了 wkhtmltopdf。如果没有访问https://wkhtmltopdf.org/downloads.html,请根据您的 windows 要求下载(如果您的 windows 是 32 位则下载 32 位,如果 64 位则下载 64 位 msi 文件)并将其安装到默认位置。

然后根据以下行更改您的 config/snappy.php 文件

'二进制' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"'

希望这会帮助你。

如需更多参考,请访问 https://github.com/barryvdh/laravel-snappy

于 2018-09-04T05:55:11.763 回答