📜  带有二维码的 dompdf - PHP (1)

📅  最后修改于: 2023-12-03 14:54:03.149000             🧑  作者: Mango

带有二维码的 dompdf - PHP

dompdf 是一个 PHP 库,可以将 HTML/CSS 转换为 PDF 文件。但是,原生的 dompdf 并没有内置二维码生成的功能,需要借助第三方库来实现。本篇介绍如何在 dompdf 中生成带有二维码的 PDF 文件。

生成二维码

生成二维码需要使用一个开源库 endroid/qr-code。在代码中需要添加以下依赖:

composer require endroid/qr-code

使用方法很简单,只需要调用以下代码:

<?php
use Endroid\QrCode\QrCode;
//生成二维码
$qrCode = new QrCode('http://www.example.com');
//设置二维码的大小
$qrCode->setSize(250);
//获取二维码图像的数据
$imageData = $qrCode->writeString();
?>

生成的 $imageData 即为二维码图像的数据。

将二维码添加到 PDF 文件中

为了在 PDF 文件中添加二维码,需要在 HTML 文件中添加 img 标签,并将图像数据作为 src 属性值。如下所示:

<img src="data:image/png;base64,<?php echo base64_encode($imageData);?>" />

然后将 HTML 中的内容渲染为 PDF 即可。

<?php
use Dompdf\Dompdf;

$dompdf = new Dompdf();
$html = file_get_contents('my_html_file.html');
$pdf = $dompdf->loadHtml($html);
$pdf->render();
$pdf->stream();
?>

注意:需要将 $imageData 从二进制字符串转换为 base64 编码的字符串。

结论

使用 endroid/qr-code 可以方便地生成二维码图像数据,然后将其添加到 HTML 文件中。通过 dompdf,这些 HTML 文件可以被转换为带有二维码的 PDF 文件。