使用 DomPDF 和 Laravel 8 创建 PDF

问题描述 投票:0回答:1

我正在尝试使用 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));

知道我做错了什么吗

php html laravel base64 dompdf
1个回答
0
投票

也许不是您正在寻找的内容,但可能会有所帮助。

将您需要的图像放在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。

© www.soinside.com 2019 - 2024. All rights reserved.