Abivia Redaction 插件滤除phoca gallery 版权,但是刷新一下页面又出来 (10) 作者 hyj22hyj
升级1.5.15后 好像用smtp发送邮件不好用了 (0) 作者 JPCAD.net
网站打不 开, 显示500错误 (3) 作者 chenlugang
后台:鼠标移到一些菜单上显示源代码 (0) 作者 lencay
PHP中文版手册 (13) 作者 yhmxm
VirtueMart 怎么安装上去的啊 (3) 作者 xuqikun
【求助】virtuemart添加商品类别图片时的问题!! (3) 作者 branky
joomla的文件权限要如何设定 (2) 作者 judy1985
我终于选择了drupal,离开joomla (28) 作者 mymyhope
请教Hawkhost.com 虚拟主机SSH使用方法? (8) 作者 jaleo
Joomla! 1.5 生成中文PDF的解决方案 |
|
| 作者: 白建鹏 | |||||
| 2007-08-16 | |||||
|
页面 1 共 2 首先向所有会员及访客致歉:本文的撰写计划早已拟就,由于最近工作较忙,没顾上写出来,今天终于唱了一出“[[空城计]]”。不过,至少可以向大家宣布:[[Joomla! 1.5]] 中文支持[[PDF]]的问题我已经解决。今天下载该版本的会员可能会发现,我制作的 Joomla! 1.5 RC1 中文版安装包达到了8MB之巨!这就是因为里面包含了实现中文PDF的字体文件。 原版的 Joomla! 1.5 RC1 无法支持中文PDF,在中文文章中一旦点击“pdf”按钮,则生成的PDF页面里面中文都是乱码(在《7步完成Joomla! 1.5 安装》这篇文章中我曾经提到过)。现在请下载本站制作的Joomla! 1.5 RC1 中文版,安装之后随便撰写一篇中文文章,然后测试其PDF功能,我相信你能看到正常的[[宋体]]中文,而且[[简体中文]]、[[繁体中文]]均可正常显示。 那么,这是如何实现的呢?这里面还有个故事。
当初我从Joomla! 1.5 RC1 制作中文版时,只是简单地将[[Joomla!台湾]]网站翻译的简繁中文语言包添加进去,然后打包即成。然而在测试时,我发现英文页面可以生成正常的[[PDF]]文件,中文页面生成pdf后都是乱码(当然页面中的数字和英文字符还正常)。我就觉得非常纳闷,难道Joomla! 1.5 就不能支持中文PDF功能吗? 于是我在Joomla!官方论坛发了一个帖子,在[[CoolAcid]] 的帮助下,我注意到在 Joomla! 1.5 的 /language 文件夹里面还有一个目录叫作 pdf_fonts。[[CoolAcid]] 告诉我,我必须制作出对应中文的、包含所有中文字符的PDF字体,才能实现对中文的PDF支持。这个字体文件必须存放在 /language/pdf_fonts 目录内,并且需要在对应语言的 xml 文件中声明这个字体用于生成 PDF 文件。 现在方案就很清楚了:制作一个字体文件;将这个文件放到指定目录;编辑 xml 文件声明这个字体。 字体文件还不简单吗?在 windows 操作系统的 c:\windows\fonts 目录里面已经自带了400多个字体文件,难道还挑不出一个能用的吗?然而,当我打开 Joomla! 1.5 的 /language/pdf_fonts 目录,我发现我把这个问题想简单了。这个目录里面根本没有 .ttf 字体文件,而是 .z 格式的文件:
同时,在 /language/en-GB/en-GB.xml 文件中的 21 行左右,发现了如下代码:
可以看出,英文页面生成PDF所用的字体文件名称是“[[vera]]”,同时需要提供 vera.php 、vera.z 和 vera.ctg.z 三个文件。 老实说,这还是我第一次看 .z 作扩展名的文件。这就产生了一个新问题:我们必须寻找一种中文字体,并将它转换成 .z 和 .ctg.z 格式,同时制作对应的 .php 文件。当然了,如果有现成的文件,直接复制过来多好啊!很可惜,经过一番搜索,我没有找到现成的字体文件。 再次感谢[[CoolAcid]] ,他提供的一个在[[SourceForge]]网站论坛上讨论“Using font files?”的帖子给了我很大启发:我们可以先将 .ttf 字体文件转换成 .ufm 文件,然后由 .ufm 文件生成 .z 文件。 又经过一番搜索和思索,我找到了这个名叫 ttf2ufm 的开源工具,该工具只有两个文件:ttf2ufm.exe 和 makefontuni.php。在该工具的说明文档中,作者给出了使用方法:
玩过[[Linux]]的人一看就知道,$ 符号是[[Unix]]操作系统的shell命令行提示符。这工具原来不能在 windows 平台上用阿! 我几乎又陷入了困境。过了几天,我突发奇想:既然 ttf2ufm 工具的主文件是 .exe 格式,它似乎应该可以在 windows 平台上使用。于是我打开了 [[winXP]] 的命令行模式,进入 ttf2ufm 的目录(已经提前复制了一个 stsong.ttf 字体文件进去),尝试执行了一下上面第一行命令(两个命令是两次分别执行):
没想到竟然执行了!并且真的生成了一个 stsong.ufm 文件! 哈哈!真是[[柳暗花明又一村]]啊。 但是,在尝试执行第二个命令时,总是无法成功,一直提示“'php' 不是内部或外部命令,也不是可运行的程序或批处理文件”。这也难怪,[[DOS]]命令中根本不存在php.exe 或者 php.com 这个文件啊。 在苦闷之际,我忽然想到我正在使用 XAMPP 集成型 AMP(Apache+MySQL+php)服务器环境。是否这个集成包之中有什么可以借用的工具呢? 结果在 J:\xampp\php 这个目录中,我看到了 php.exe 文件。OK!有办法了:我把 ttf2ufm 工具目录移动到 J:\xampp\php 目录下,然后借用这里的php.exe来运行脚本。 |
|||||
| < 上一篇 | 下一篇 > |
|---|