让WP-Advanced-PDF插件支持中文

  • Post author:
  • Post category:其他


前几天写了篇文章《

怎样把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


$pdf


->SetFont(


'dejavusans'


,


''


, 14,


''


, true);

修改成

1


$pdf


->SetFont(


'stsongstdlight'


,


''


, 14,


''


, true);

其中”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


'STSongStd-Light-Acro'


=>


'stsongstdlight'

保存。然后到 wordpress 的后台 设置 -> WP Advanced PDF 中,把contenet、header、footer中的默认字体都修改成 STSongStd-Light-Acro ,保存。

这样,

WP Advanced PDF

插件就可以生成包含中文的PDF了。

不过,由于

TCPDF

是通过解析的方式静态地分析布局,鉴于布局运行时会有很大的变化,某些布局复杂的文章并不能以原格式呈现。对格式要求不高的场景,

WP Advanced PDF

也是一项不错的选择。



版权声明:本文为ZiJinShi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。