一:dompdf/dompdf地址
github:https://github.com/dompdf/dompdf
packagist:http://packagist.p2hp.com/packages/dompdf/dompdf
二: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;
}
根据如上操作我们就可以解决中文乱码问题