Laravel:尝试获取 PDF 时出现 DOMPDF 错误
Posted
技术标签:
【中文标题】Laravel:尝试获取 PDF 时出现 DOMPDF 错误【英文标题】:Laravel: DOMPDF error when trying to get PDF 【发布时间】:2021-10-01 03:20:00 【问题描述】:我一直在尝试使用 DOMPDF 获取视图的 PDF,其中包含从数据库表填充的成分表。
我在控制器中创建了一个函数:
public function createPDF()
// retreive all records from db
$data = Ingredients::all();
// share data to view
view()->share('ingredients', $data);
$pdf = PDF::loadView('printableingredientslist', $data);
// download PDF file with download method
return $pdf->download('printableingredientslist.pdf');
而web.php中的路由定义为:
Route::get('/printpreviewingredients/pdf', [MealPlanDisplayController::class, 'createPDF']);
但是,我不断收到此错误:
fopen(D:\mealplan\storage\fonts//nunito_normal_46b9b3b48cc3ddbae60da82f1c1c5d29.ufm): 无法打开流:没有这样的文件或目录
这一定与“printableingredientslist
”有关,因为当我将它替换为带有简单文本的plain view page
时,它可以工作。但是,我正在努力查看路径问题,因为printableingredientslist.blade.php
只是在views 文件夹下。问题可能是什么?我用的是tailwind.css
,会不会有问题?
【问题讨论】:
【参考方案1】:setOptions
方法使用默认字体。例如如下
public function pdf()
$pdf = \PDF::loadView('contact')->setOptions(['defaultFont' => 'sans-serif']);
return $pdf->download('invoice.pdf');
或
在storage
目录下创建目录fonts
参考:https://github.com/barryvdh/laravel-dompdf/issues/724
参考:https://github.com/barryvdh/laravel-dompdf/issues/176
参考:https://github.com/barryvdh/laravel-dompdf/issues/269
【讨论】:
以上是关于Laravel:尝试获取 PDF 时出现 DOMPDF 错误的主要内容,如果未能解决你的问题,请参考以下文章
如果source是pdf类型,则将ps转换为pdf时出现问题