我无法下载带有图像的 pdf 文件,我在我的 Laravel 项目中使用 dompdf。
这是我的控制器代码:
public function downloadPdf()
{
$cakes = Cake::all();
$data = [
'cakes' => $cakes,
];
$pdf = PDF::loadView('pages.cake.pdf', $data)
->setOptions(['defaultFont' => 'sans-serif'])
->setPaper('landscape', 'a4');
return $pdf->download('kue.pdf');
}
这是我的观点下载:
<table class="table table-bordered">
<thead>
<tr>
<th>No.</th>
<th>Nama Kue</th>
<th>Harga</th>
<th>Foto</th>
<th>Dibuat Oleh</th>
</tr>
</thead>
<tbody>
@foreach ($cakes as $item)
<tr>
<td>{{ $loop->iteration }}</td>
<td class="align-middle">{{ $item->nama }}</td>
<td class="align-middle">{{ $item->harga }}</td>
<td>
**<img src="{{ asset('fotoKue/kue-fazril.jpg') }}" alt="Foto Kue"
style="heigth: 8rem; width: 8rem;">**
</td>
<td class="align-middle p-0">
{{ $item->creator_name . ' - ' . $item->creator_nim }}
</td>
@endforeach
</tbody>
</table>
iam 使用 src 进入我的公共目录进行采样。
我想我的问题dompdf无法使用imgae下载pdf,已解决。
您正在使用
src="{{ asset('fotoKue/kue-fazril.jpg') }}"
。对于网络视图来说,这是正确的选择。
它创建类似
http://localhost/assets/fotoKue/kue-fazril.jpg
的 url。这里的问题是 DOMPDF 需要服务器上的文件相对路径。在大多数情况下,它不会(在 docker 上总是)与本地主机一起工作,因为它不可用。
尝试
src="{{ public_path('assets/fotoKue/kue-fazril.jpg') }}"
。
这将创建 /var/www/html/public/assets/fotoKue/kue-fazril.jpg