关于pdf:使用dompdfdompdf实现生成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;
}

依据如上操作咱们就能够解决中文乱码问题

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理