2005年3月6日星期日

xpdf的中文支持问题

今天在公司又有朋友在问xpdf的中文支持问题,

不管2.03还是3.0,都需要安装语言包(简体中文语言包直接下载),
语言包内包含了CMap files, text encodings, and various other configuration
information necessary or useful for specific character sets.
记得Debian对于语言包的自动安装做了一些改进[4](但Debian中似乎没有见到针对xpdf-3.0的语言包?)。

然后就是对于CJK字体的支持了,有两个补丁:

一个来自lucida's linux patch,可用于2.03和3.0

另一个来自原作者(补丁下载, 但在xpdf主页上没有发现) ,可以正确显示不带内嵌字体的中文pdf文件,但仅能用于3.0

还有一个问题就是对书签中中文的支持,这个在lucida的网页上有详细说明


另:

3.0不再支持X server字体,不再支持freetype 1.x,而支持TTF字体(不支持TTC)

3.0支持PDF 1.5, 而2.03最高支持PDF 1.4




以下内容摘自lucida的网页:

中文书签的显示需要额外的配置工作。

1. 在~/.Xdefaults里面加入资源项

xpdf*.fontList:
-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1;-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0:

注意标点,另外确保使用的字体的确存在,然后

xrdb -merge ~/.Xdefaults

使修改生效

2. 正确设置PDF文件的encoding

方法1. 在/etc/xpdfrc里面增加一行

textEncoding GBK

方法2. 使用参数启动xpdf,如下

xpdf -enc GBK aa.pdf

3. 关于编译以及使用中的一些问题

a. 无法在Freetype版本≧2.1.6的系统上编译

这是因为Freetype从此版本开始,强制引用"ft2build.h"而非"freetype/freetype.h",造成xpdf configure检测Freetype版本失败。本地下载

b.
关于资源项的设置,某些系统上应使用Xpdf*.fontList:(首字母X大写)而非xpdf*.fontList:。我不知道原因,不过如果您自觉资源项设置没有生效,可以试试。

另外一个设置资源项的方法是,修改或者新建/etc/X11/app-defaults/Xpdf,加入对应内容,这样可以省略xrdb
-merge的步骤(感谢seb@smth的建议)

c. 某些PDF制作不规范(比如Linux国家标准草案PDF档),请使用

xpdf -enc Latin1 buggy.pdf

启动xpdf,以便读取书签。

d. 注意修改/etc/xpdfrc,加入合适的ttf字体,比如

displayCIDFontTT Adobe-GB1 /usr/share/fonts/simhei.ttf

xpdf3不再支持老的XLFD字体(以及displayCIDFontX资源项),所以以前的设置文章不再有效。另外,xpdf3目前只支持ttf字体,不支持ttc(TrueType
font Collection)字体。




没有评论: