Laravel 5.6使用barryvdh / snappy在windows

时间:2018-04-16 04:29:40

标签: pdf-generation laravel-5.6 laravel-snappy

我正在尝试使用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   标准输出:“”\ 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 个答案:

答案 0 :(得分:0)

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

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

'binary'=>'“ C:\ Program Files \ wkhtmltopdf \ bin \ wkhtmltopdf”'

希望这会对您有所帮助。

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

答案 1 :(得分:0)

尝试此解决方案https://github.com/barryvdh/laravel-snappy/issues/60,并寻找STAMBOULI ABDELKARIM的评论,它对我很有帮助。

使用DomPDF生成图表非常困难/不可能,开发者Barryvdh也指出了这一点

答案 2 :(得分:0)

我认为这是Windows错误。尝试将 Wkhtmltopdf bin文件夹添加到路径。 请参阅此article

Refer to this image

答案 3 :(得分: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的bin路径中添加双引号 'binary'=>'“ C:\ Program Files \ wkhtmltopdf \ bin \ wkhtmltopdf”'