我正在尝试创建一个导出按钮,该按钮将HTML页面转换为PDF,然后下载。
我正在使用Windows 10,XAMPP,Laravel 5.8,wkhtmltopdf。
Snappy Config:
'pdf' => [
'enabled' => true,
'binary' => '"F:\wkhtmltopdf\bin\wkhtmltopdf.exe"',
'timeout' => false,
'options' => [],
'env' => [],
],
'image' => [
'enabled' => true,
'binary' => '"F:\wkhtmltopdf\bin\wkhtmltoimage.exe"',
'timeout' => false,
'options' => [],
'env' => [],
],
导出代码:
$export_data = $this->exportData($checklist, $request);
$pdf_content = view('checklist.pdf.content')->with($export_data);
$pdf = PDF::loadHTML($pdf_content);
$pdf->setPaper('letter');
if ($checklist->weekly_monthly) {
$pdf->setOrientation('landscape');
}
$pdf->setOption('header-spacing', 30);
$pdf->setOption('header-html', view('checklist.pdf.header')->with($export_data));
$pdf->setOption('footer-html', view('report.pdf.footer'));
return $pdf->download($save_path);
答案 0 :(得分:1)
检查您的视图checklist.pdf.content
。根据我使用wkhtmltopdf的经验,有99%的时间是视图问题。
请确保如果您在视图中使用任何图像或外部样式表,则它们的路径均已正确定义。如果不是这样,您的HTML将在您的浏览器中正常工作,但将其用于wkhtmltopdf则会引发此类错误。
为了提供图像和外部样式表的路径,请使用以下格式:
<head>
<link href="{{public_path()}}/css/app.css" rel="stylesheet">
</head>
<body>
<img src="{{public_path()}}/images/test.png" />
</body>
当然,确切的路径可能会根据您的文件夹配置而有所不同,但是它们必须是可公开访问的,并且应该使用远程路径进行访问。
我希望对您有帮助