我正在尝试使用 DomPDF 2.2 创建 PDF,但无法识别 base64 图像,但当我返回 HTML 时,图像会显示。我在 HTML 中纯粹传递了所有的 base64 代码。我如何实现这个。
<img style="padding: 0px; margin: 0px;" width="100%" src="data:image/png;base64, ' . $base64 . '" />
以及我创建 PDF 的方式:
$pdf = app('dompdf.wrapper');
$context = stream_context_create([
ssl' => [
verify_peer' => false,
verify_peer_name' => false,
],
]);
$pdf->getDomPDF()->setHttpContext($context);
$pdf->getDomPDF()->set_option("isPhpEnabled", true);
$pdf->getDomPDF()->set_option("isHtml5ParserEnabled", true);
$pdf->getDomPDF()->set_option("isRemoteEnabled", true);
$pdf->getDomPDF()->set_option("isFontSubsettingEnabled", true);
$pdf->getDomPDF()->set_option("enable_html5_parser", true);
ob_start();
$pdf->loadHtml($paginaHTML);
ob_get_clean();
$pdf->setPaper('letter', ($orientacion == 1 ? 'portrait' : 'landscape'));
$pdf->save(public_path('img/' . $pdfName));
知道我做错了什么吗
也许不是您正在寻找的内容,但可能会有所帮助。
将您需要的图像放在app\public下的文件夹中,然后在filesystems.php配置文件中,创建一个符号链接,如下所示。
我使用 app/public/logos 作为例子。
'links' => [
public_path('logos') => storage_path('app/public/logos'),
],
运行以下命令来创建符号链接
php artisan storage:link
然后在html视图中,您可以通过上面配置的应用程序URL和目录使用以下方法指向图像。
<img src="{{ config('app.url') . '/logos/logo_no_bg_gray.png' }}" width="300px" alt="Logo">
注意:当您将应用程序移至生产服务器时,请确保正确配置 APP_URL。