我正在尝试使用laravel和dompdf lib生成pdf文件。这是我的控制器代码:
public function create(Request $request) {
$pdf = new Dompdf();
$html = Storage::disk('local')->get('public/pdf/template.html');
$pdf->loadHtml($html, 'UTF-8');
$pdf->setPaper('A4', 'portrait');
$pdf->render();
$filename = "Hi!";
return $pdf->stream($filename, ["Attachment" => false]);
}
在template.html
我得到了一些HTML,在某处我得到了这样的图像:
<img src="img/logo.png" alt="BTS">
但是dompdf无法写下这张图片:Image not found or type unknown
。我的文件系统是:
.pdf
...img
......here is images
...template.html
...*some_fonts_files*
但与此同时,字体加载正常。我该怎么做才能在template.html中渲染图像?
答案 0 :(得分:3)
我也为同样的错误而苦苦挣扎了3天。另外,当我尝试上述技巧时,它们也都没有起作用。但是,当我将图像文件更改为 .jpg 文件(扩展名)时,一切正常。
DateTime gotFinalTime = intl.DateFormat('hh:mm').parse(removeABC);
String formattedTime = intl.DateFormat.jm().format(gotFinalTime);
print(formattedTime);
答案 1 :(得分:1)
我相信对于dompdf,您需要传递一个可访问的URL而不是相对路径。
尝试
<img src="{{ asset('img/logo.png')}}" alt="BTS">
或者,如果资产不起作用,请尝试
<img src="{{ public_path('img/logo.png')}}" alt="BTS">
另请注意,资产使用公共目录作为base_url来计算'资产'。