解决使用 mPDF 导出 PDF 时中文及符号乱码问题

December 17, 2023
测试
测试
测试
测试
2 分钟阅读

在开发导出 PDF 时,选择了使用mPDF,mPDF 是一个 PHP 库,它从 UTF-8 编码的 HTML 生成 PDF 文件。

而它的使用也相对简单:

安装

使用composer加载

composer require mpdf/mpdf

使用

<?php

require_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output();

但是在实际使用时会遇到中文和符号乱码(变成了小方块)的问题,最开始会想到是字体的问题,但是指定了字体后,并没有解决问题。

mpdf中文和符号乱码

查看了文档后发现需要指定两个参数:

$this->pdf = new Mpdf([
    'autoScriptToLang' => true,
    'autoLangToFont'   => true,
]);

刷新页面,发现中文此时已经可以正常显示了

mpdf中文正常,符号依旧是方块

但是当中文的标点符号靠近英文的时候,中文符号就又会变回小方块。

再添加一个配置项代码,解决符号的问题:

$this->pdf = new Mpdf([
    'autoScriptToLang' => true,
    'autoLangToFont'   => true,
    'useSubstitutions' => true,
]);

mpdf导出正常

至此,解决了中文和标点符号乱码的问题。

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多