Joomla/Joomla! 1.5生成中文PDF的解决方案

来自站长百科
跳转至: 导航、​ 搜索

Joomla | Joomla使用手册

原版的 Joomla! 1.5 RC1 无法支持中文PDF,在中文文章中一旦点击“pdf”按钮,则生成的PDF页面里面中文都是乱码。本条目就来阐述一下Joomla! 1.5生成中文PDF的解决方案。

解决方案[ ]

在 Joomla! 1.5 的 /language 文件夹里面还有一个目录叫作 pdf_fonts。必须制作出对应中文的、包含所有中文字符的PDF字体,才能实现对中文的PDF支持。这个字体文件必须存放在 /language/pdf_fonts 目录内,并且需要在对应语言的 xml 文件中声明这个字体用于生成 PDF 文件。现在方案就很清楚了:制作一个字体文件;将这个文件放到指定目录;编辑 xml 文件声明这个字体。

字体文件还不简单吗?在 windows 操作系统的 c:\windows\fonts 目录里面已经自带了400多个字体文件,难道还挑不出一个能用的吗?然而,当打开 Joomla! 1.5 的 /language/pdf_fonts 目录,我发现我把这个问题想简单了。这个目录里面根本没有 .ttf 字体文件,而是 .z 格式的文件:

Joomla! pdf 1.png

同时,在 /language/en-GB/en-GB.xml 文件中的 21 行左右,发现了如下代码:

<pdfFontName>vera</pdfFontName>

可以看出,英文页面生成PDF所用的字体文件名称是“vera”,同时需要提供 vera.php 、vera.z 和 vera.ctg.z 三个文件。

具体过程[ ]

字体源的选择[ ]

考虑到.ufm文件必须由unicode字体文件产生,挑选了 c:\windows\fonts 目录里面的 stsong.ttf 文件(华文宋体),如果你没有这个字体,可以在网上下载到。之所以没有选用“宋体”,是因为“宋体”所对应的字体文件为 simsun.ttc,不是 .ttf 格式。

生成.ufm文件[ ]

在 J:\xampp\php 中创建新目录 ttf2ufm,将 ttf2ufm 工具的两个文件复制进去。然后将 c:\windows\fonts\stsong.ttf 文件复制进去。运行 winXP 的命令行模式,进入到J:\xampp\php\ttf2ufm 目录,输入以下命令:

J:\xampp\php\ttf2ufm>ttf2ufm -a -F stsong.ttf

算机开始生成 .ufm 文件,这个过程比较漫长,要耐心等待。屏幕显示如下图所示:

Joomla! pdf 2.png

大约经过3分钟时间,会提示:

FontName STSong
No Kerning data
No Kerning data
Finished - font files created

这表示转换完成。这时会发现 J:\xampp\php\ttf2ufm 文件夹中多出了3个文件,分别是 stsong.afm 、stsong.t1a 和 stsong.ufm,如下图所示:

Joomla! pdf 3.png

生成.z字体文件[ ]

现在该用到php.exe这个命令了。由于该文件位于 J:\xampp\php\ttf2ufm 上一层目录,所以我们在命令行模式下执行下面的命令:

J:\xampp\php\ttf2ufm>..\php -q makefontuni.php stsong.ttf stsong.ufm

这个命令开头的两个点(..)表示当前目录的上级目录。输入这个命令并回车之后,电脑似乎没有任何反应,大约15秒钟之后,提示“字体文件压缩成功”:

Joomla! pdf 4.png

这时可以看到在 J:\xampp\php\ttf2ufm 文件夹中又多出了3个文件:stsong.php 、stsong.z 和 stsong.ctg.z ,正是我们所需要的!如下图所示:

Joomla! pdf 5.png

测试PDF效果[ ]

将刚才得到的 stsong.php 、stsong.z 和 stsong.ctg.z 三个文件复制到 Joomla! 1.5 的 /language/pdf_fonts 目录里,然后编辑 /language/zh-CN/zh-CN.xml 文件,将20行左右的PDF字体声明代码修改为:

<pdfFontName>stsong</pdfFontName>

请注意:当打开 /language/zh-CN/zh-CN.xml 文件后会发现原来所设置的PDF字体文件竟然跟英文一样,也是 vera!很明显vera字体不支持中文字符,因此这才是中文PDF出现乱码的根源。

按照上述方法修改 /language/zh-CN/zh-CN.xml 文件后保存,然后测试 Joomla! 1.5,在前台中文页面上点击“PDF”按钮,会看到终于输出了正常的中文页面!

参考来源[ ]

http://www.joomlagate.com/article/joomla15-tutorial/how-to-generate-pdf-for-chinese-article-in-joomla15/

Joomla 1.5使用手册导航

Joomla安装

Joomla!的安装

Joomla 1.5教程

Joomla!1.5自带资源给前台添加下拉菜单 | 巧用ReadMoreExt和Shadowbox来插入外链大图 | 借助pcDTR插件使用任意字体美化Joomla页面 | 借助Abivia Redaction插件滤除Joomla扩展的版权链接 | Joomla!1.5网站防黑9条戒律 | Joomla!1.5与Dokuwiki的完全整合方案 | 用SJSB桥接器无缝整合Joomla!1.5.9、SMF2.0论坛 | 详解用RokBridge 1.0RC8整合Joomla!1.5.9与phpBB3论坛 | Joomla!与Tikiwiki的外观整合 | Jumi插件的介绍 | 用CSS控制Display News模块的外观样式 | Open-Realty介绍 | Google Gears的应用 | 在Joomla!1.5文章中插入Ozio Gallery图库 | 文章中自动插入广告 | GCalendar介绍 | Joomla 1.5 SEO Patch的用法 | Joomla! 1.5生成中文PDF的解决方案

其他Joomla教程

用XAMPP快速搭建Joomla本地测试服务器 | 用Gmail的SMTP发送Joomla激活及通知邮件 | 深入认识Joomla CMS:扩展、菜单及模板 | Joomla 1.0教程 | Joomla高级教程 | Joomla! SEO教程