关于pdf:使用dompdfdompdf实现生成pdf文件

50次阅读

共计 1034 个字符,预计需要花费 3 分钟才能阅读完成。

一: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;}

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

正文完
 0