:

TCPDF 中文支持解决方案

song100e 发布于:2021-3-18 11:46 分类:PHP  有 493 人浏览,获得评论 0 条 标签: TCPDF 

        最近项目中有个小需求就是导出 pdf 文件, 浏览了一圈, 最后选择了 TCPDF, 过程中发现官方下载包并不能有好的支持中文。

解决步骤如下:
1.    确保你测试tcpdf能正常输出英文内容的pdf2.测试输入中文内容后显示是?的乱码或者空白分析原因,是因为我们输入的中文,TCPDF 字体库并不支持,因此乱码或者空白显示,添加一个合适的字体即可。另外 TCPDF 的字体分为两种方式,嵌入方式和非嵌入(系统自带)嵌入就是输出的 pdf 会包含你的字体文件,系统自带的要求客户端必须有你指定的字体。

找到了原因,明白了原理,ok,开搞吧

3.下载支持中文字体的

    http://sourceforge.net/projects/hawebs/files/Assistance/PHP/Droid%20Sans%20Fallback%20-%20PHP.zip/download
下载后,将它解压放在 droidsansfallback.php、droidsansfallback.z 以及 droidsansfallback.ctg.z 这三个文件复制到 TCPDF\fonts 下面即可

4.配置
    中文的解决方法为:tcpdf\config\tcpdf_config.php

define ('PDF_FONT_NAME_MAIN', 'helvetica');
改为: define ('PDF_FONT_NAME_MAIN’, 'stsongstdlight');

define ('PDF_FONT_NAME_DATA', 'helvetica');
改为: define ('PDF_FONT_NAME_DATA', 'stsongstdlight');

5.将数据交给 TCPDF 类处理时,一定要 UTF8 编码,否则也会出现乱码的情况发生的。
赞助我,共同学习进步!