使用dompdf/dompdf实现生成pdf文件

一:dompdf/dompdf地址

github:https://github.com/dompdf/dompdf

packagist:http://packagist.p2hp.com/pac...

二:dompdf/dompdf安装

composer require dompdf/dompdf

三:dompdf/dompdf简单实例

$pdf = new \Dompdf\Dompdf();
$content = 'pdf内容';
$pdf->loadHtml($content);
//设置纸张大小和方向
$pdf->setPaper('A4', 'landscape');
$options = new Options();
//设置使用远程图片填充pdf内容
$options->setIsRemoteEnabled(true);
$pdf->setOptions($options);
//将html转为PDF
$pdf->render();
//下载生成的pdf文件
$pdf->stream('xxx.pdf');

//将生成的pdf保存到服务器
file_put_contents('xxx.pdf',$pdf->output());

//将生成的pdf文件渲染到页面
$pdf->stream('xxx.pdf', [
    'compress' => 0,
    'Attachment' => 0
]);

四:解决生成的pdf文件中文乱码

1:下载字体包安装脚本utils

https://github.com/dompdf/utils

2:字体包安装脚本处理

将下载下来的安装脚本中的load_font.php文件拷贝到项目的vender平级目录下,然后将需要的字体包文件ttf也放到load_font.php同一级目录下(例如simsun.ttf)

3:执行字体包安装脚本

php load_font.php simsun simsun.ttf

4:修改安装字体包中的文件路径(注意:不操作此项再本机上是正常的,放到服务器就会有问题了)

找到dompdf\dompdf\lib\fonts\installed-fonts.json文件,这时候我们就可以看到我们刚刚安装的字体包

这里我们可以看到引入的字体包相关路径都是本机路径,我们可以看到 dompdf\dompdf\lib\fonts路径下存在我们需要的文件,修改引入路径即可,如:

5:html使用字体包样式即可

body {
    font-family: simsun;
}

根据如上操作我们就可以解决中文乱码问题

你可能感兴趣的:(pdfphp)