dompdf添加中文字体方法

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

发表回复 0