前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决使用 mPDF 导出 PDF 时中文及符号乱码问题

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

作者头像
沈唁
发布2022-11-14 16:27:33
2.8K0
发布2022-11-14 16:27:33
举报
文章被收录于专栏:沈唁志沈唁志

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

而它的使用也相对简单:

安装

使用composer加载

代码语言:javascript
复制
composer require mpdf/mpdf

使用

代码语言:javascript
复制
<?php

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

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

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

mpdf中文和符号乱码

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

代码语言:javascript
复制
$this->pdf = new Mpdf([
    'autoScriptToLang' => true,
    'autoLangToFont'   => true,
]);

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

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

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

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

代码语言:javascript
复制
$this->pdf = new Mpdf([
    'autoScriptToLang' => true,
    'autoLangToFont'   => true,
    'useSubstitutions' => true,
]);

mpdf导出正常

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 沈唁志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档