前几天写了篇文章《
怎样把WordPress的文章生成PDF
》。有网友告诉我,只需稍作修改,
WP Advanced PDF
也可支持中文。
怀着好奇之心,我决定试试看。
安装
WP Advanced PDF
之后,到 设置 -> WP Advanced PDF 中,设置2个选项:Display Option 设置为 Front-End;Availability 设置为 For all visitors。
保存设置后,打开任意一篇文章,发现在文章顶部出现了 Download PDF 的图标,如下图。
点击图标,下载的文档是乱码。
怎么解决呢?
读了这个插件的源码,它是基于
TCPDF
,实现的。第一步,先要确认那么
TCPDF
是否支持中文。
从
TCPDF
的代码库下载了源码, 解压到服务器根目录下的某个子目录中。
好在
TCPDF
提供了用户友好的样例,在 examples文件夹中。第一个样例 example_001.php文件中,把代码
1 |
|
修改成
1 |
|
其中”stsongstdlight”表示”STSongStdLight”字体,这是Adobe Reader的默认简体中文字体,TCPDF中已经内置这个字体的配置文件,我们只需直接调用即可。
把 example_001.php 文件中的html内容加上中文字,保存。在浏览器中打开example_001.php,中文正常显示。由此可见,
TCPDF
可以支持中文。要
WP Advanced PDF
支持中文,初步估计改动量不大。
要
WP Advanced PDF
支持中文,先保证中文字体存在。把
TCPDF
的字体文件stsongstdlight.php 复制到
WP Advanced PDF
插件的字体文件夹wp-contents/uploads/fonts中。
之后,找到插件的文件libs/wpppdf-tab-general.php,定位到fonts数组中,在数组中加上一行
1 |
|
保存。然后到 wordpress 的后台 设置 -> WP Advanced PDF 中,把contenet、header、footer中的默认字体都修改成 STSongStd-Light-Acro ,保存。
这样,
WP Advanced PDF
插件就可以生成包含中文的PDF了。
不过,由于
TCPDF
是通过解析的方式静态地分析布局,鉴于布局运行时会有很大的变化,某些布局复杂的文章并不能以原格式呈现。对格式要求不高的场景,
WP Advanced PDF
也是一项不错的选择。