目前,鉴于没有发生重大变化,我正在尝试追查此问题的根源。
但是目前我目前使用 laravel-snappy 生成 pdf,直到现在我突然收到以下错误时才遇到问题:
未创建文件“C:\Users\ADMINI~1\AppData\Local\Temp\knp_snappy5a7d3011c11883.41249127.pdf”(命令:“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 平台上托管和提供。
我的 snappy 配置:
<?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(),
),
);
我的文件是通过我的控制器生成的:
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();
}