php - laravel-snappy:文件未创建

标签 php laravel laravel-5 wkhtmltopdf laravel-snappy

目前,鉴于没有任何重大更改,我正在尝试追踪此问题的根源。

但是目前我使用 laravel-snappy 生成 pdf,直到现在我突然收到以下错误:

The file 'C:\Users\ADMINI~1\AppData\Local\Temp\knp_snappy5a7d3011c11883.41249127.pdf' was not created (command: "C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf" --lowquality --images --enable-javascript --javascript-delay "10" "C:\Users\ADMINI~1\AppData\Local\Temp\knp_snappy5a7d3011b9a179.91650543.html" "C:\Users\ADMINI~1\AppData\Local\Temp\knp_snappy5a7d3011c11883.41249127.pdf").

不幸的是,它没有告诉我为什么它没有被创建。此时,错误处理程序指向返回此错误的特定行:

if (!$this->fileExists($output)) {
    throw new \RuntimeException(sprintf(
        'The file \'%s\' was not created (command: %s).',
        $output, $command
    ));
}

此行来自此文件:vendor\knplabs\knp-snappy\src\Knp\Snappy\AbstractGenerator.php

我的 wkhtmltopdf 二进制文件位于正确的位置,并且这些文件的设置没有发生任何变化。是的,目前这些文件在 Windows Server 平台上托管和提供服务。

我的快速配置:

<?php

return array(

    'pdf' => array(
        'enabled' => true,
        'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"',
        'timeout' => false,
        'options' => array(),
        'env'     => array(),
    ),
    'image' => array(
        'enabled' => true,
        'binary'  => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltoimage"',
        'timeout' => false,
        'options' => array(),
        'env'     => array(),
    ),

);

我的文件是通过我的 Controller 生成的:

  public function downloadPDF(Shipment $shipment) {
      $shipment_details = $shipment->shipment_details;
      $shipment->print_date = Carbon::now();
      $shipment->save();

      $pdf = PDF::loadView('shipments.pdf', compact('shipment','shipment_details'))
                    ->setOption('images', true)
                    ->setOption('enable-javascript', true)
                    ->setOption('javascript-delay', 10);
      return $pdf->download('shipment'.$shipment->uuid.'.pdf');

      $shipment->print_date = Carbon::now();
      $shipment->save();
  }

最佳答案

发布此内容是为了防止其他人在谷歌搜索时遇到同样的问题,并且他们不喜欢“在 Linux 中这样做”的公认答案

对我来说,这是因为未安装 Visual C++ 2013 - 在命令行中运行该文件会出现有关缺少 redist 中包含的 dll 的错误。

关于php - laravel-snappy:文件未创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48699278/

相关文章:

php - 无法登录 localhost/phpmyadmin

php - wordpress 以智能方式显示反序列化数据

php - 将标签附加到 MySQL 数据库中的一行

php - Laravel 架构构建器主键作为外键

Laravel - belongsTo 关系的条件

php - 将 mysql_query 添加到 onclick 函数中

javascript - 如何在 laravel TableView Blade 中显示 JSON 中的指定对象值

php - Laravel 5/Apache 2.4.9 配置问题

php - 在 Laravel 5 (Lumen) 中使用基本路径

php - 拉维尔 5.1 : sendOutputTo() truncating log file?