1.准备加载脚本
GitHub – dompdf/dompdf: HTML to PDF converter for PHP
在这个仓库下载load_font.php,放在vendor\dompdf\dompdf目录。
2.下载字体
可以使用任意支持中文的字体文件,这里以微软雅黑(msyh)为例,我们把该字体文件 msyh.ttf 直接放在load_font.php同一目录。
我用夸克网盘分享:
链接:https://pan.quark.cn/s/00cb4b2c6b80
提取码:u9Ss
php lod_font.php msyh msyh.ttf
以上命令会在vendor\dompdf\dompdf\lib\fonts下生成相应文件。
3.设置installed-fonts.json
查看vendor\dompdf\dompdf\lib\fonts\installed-fonts.json文件,是否有以下文本
"msyh": {
"bold": "msyh",
"bold_italic": "msyh",
"italic": "msyh",
"normal": "msyh"
}
如果没有手动添加。
4. html部分样例如下,关键是body部分的font-family,需要写安装的字体。
<html>
<head>
<style>
body {font-family: msyh; word-break: break-all; word-rap: break-word;}
</style>
</head>
<body></body>
<html>
5.简单示例
$pdf = new \Dompdf\Dompdf();
$content = '<html><head><style>body {font-family: msyh; word-break: break-all; word-rap: break-word;}</style></head><body>显示中文测试</body><html>';
$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
]);
Was this helpful?
0 / 0