URN Logo
UNIX Resources » Linux » China Linux Forum » Linux 中文环境和中文化 » 15 » [精华] 一个xpdf 3.00的patch
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
[精华] 一个xpdf 3.00的patch
[精华] 一个xpdf 3.00的patch - lucida [2004-02-14 09:28 | 1,378 byte(s)]
 
Re: 一个xpdf 3.00的patch - lionchong [2004-09-16 19:56 | 1,179 byte(s)]
 
Re: 一个xpdf 3.00的patch - slamok [2004-08-01 06:25 | 351 byte(s)]
 
xpdf 3.00的patch网址变更 - don king [2004-07-30 10:18 | 481 byte(s)]
 
Re: 一个xpdf 3.00的patch - Rigel [2004-02-16 14:54 | 745 byte(s)]
 
Re: 一个xpdf 3.00的patch - lucida [2004-02-17 05:02 | 1,010 byte(s)]
 
Re: 一个xpdf 3.00的patch - Rigel [2004-02-17 16:44 | 391 byte(s)]
 
Code - Rigel [2004-02-17 16:57 | 1,494 byte(s)]
 
Re: Code - lucida [2004-02-18 11:37 | 275 byte(s)]
 
Re: Code - waq [2004-03-16 17:54 | 20 byte(s)]
 
Re: Code - luo_chong [2004-02-26 15:47 | 60 byte(s)]
 
Re: 一个xpdf 3.00的patch - moonlight [2004-02-17 09:46 | 89 byte(s)]
 
Re: 一个xpdf 3.00的patch - lucida [2004-02-17 09:59 | 158 byte(s)]
 
Re: 一个xpdf 3.00的patch - moonlight [2004-02-17 13:50 | 20 byte(s)]
 
[精华] Re: 一个xpdf 3.00的patch - amchauz0154 [2004-02-14 17:42 | 11 byte(s)]
 
Subject: [精华] 一个xpdf 3.00的patch
Author: lucida    Posted: 2004-02-14 09:28    Length: 1,378 byte(s)
[Original] [Print] [Top]
一个all in 1的patch,解决如下问题

a. 正确显示不带内嵌字体的中文pdf(来自原作者)

b. 中文书签
重写了一下,找到了直接用xpdf自带的unicode码表的方法,
不再用iconv了,也简单的多。

c. 中文复制
选中区域,鼠标中键复制到其它程序

d. 中文查找


使用方法:

0. 下载xpdf 3.00的源码,解压,下载patch
wget http://61.153.200.30/lucida/xpdf-final.diff.gz
gunzip xpdf-final.diff.gz
patch -p0 < xpdf-final.diff
./configure --prefix=/usr --enable-freetype2
--with-freetype2-includes=/usr/include/freetype2
make
make install

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
然后直接用
xpdf aa.pdf
启动
方法2. 使用参数启动xpdf,如下
xpdf -enc GBK aa.pdf


That's all..
[Original] [Print] [Top]
Subject: [精华] Re: 一个xpdf 3.00的patch
Author: amchauz0154    Posted: 2004-02-14 17:42    Length: 11 byte(s)
[Original] [Print] [Top]
good work!!
[Original] [Print] [Top]
Subject: Re: 一个xpdf 3.00的patch
Author: Rigel    Posted: 2004-02-16 14:54    Length: 745 byte(s)
[Original] [Print] [Top]
你测试过中文复制吗?扫了一下你的补丁,按现在的写法应该不行。你把程序之间通讯
的编码从 latin1 改为 compound text,这种作法是正确的。但是你要传递的文字不会
自动变成 compound text,这需要你调用 XmbTextListToTextProperty 来转换,好像
没看见你的补丁里有这一步。

另外我建议你不要把 latin1 扔掉,应该和 compound text 同时支持。因为有些程序不
支持 compound text,如果同时支持 latin1,至少英文还可以 copy & paste。这应该
有助于你的补丁被作者接受。

强烈建议你把补丁寄给 Eric,说服他接受,使跟多的人受益。
[Original] [Print] [Top]
Subject: Re: 一个xpdf 3.00的patch
Author: lucida    Posted: 2004-02-17 05:02    Length: 1,010 byte(s)
[Original] [Print] [Top]
我测试过中文复制呀
没问题,因为xpdf内部处理的时候是用的GString,这个是可以正确处理中文的,原始程序出问题就在于最后使用XA_STRING而非COMPOUND_TEXT和x的剪贴板通讯。

这是我的locale

LANG=en_US.iso88591
LC_CTYPE=zh_CN.gbk
LC_NUMERIC=en_US.iso88591
LC_TIME=en_US.iso88591
LC_COLLATE=en_US.iso88591
LC_MONETARY=en_US.iso88591
LC_MESSAGES=en_US.iso88591
LC_PAPER=en_US.iso88591
LC_NAME=en_US.iso88591
LC_ADDRESS=en_US.iso88591
LC_TELEPHONE=en_US.iso88591
LC_MEASUREMENT=en_US.iso88591
LC_IDENTIFICATION=en_US.iso88591
LC_ALL=

CompoundText应该是向下兼容XA_STRING的,不过我对Xlib编程很不熟悉,可能是我弄错了。另外一个困难是,我没想出合适的“自动兼容Latin1”的机制。

关于反馈给作者,我在水木清华贴过这个patch,但是好像没什么测试回馈,所以再贴到这里。我希望在给作者之前,能尽可能的完善。反正xpdf的发布周期很长,不着急。。
[Original] [Print] [Top]
Subject: Re: 一个xpdf 3.00的patch
Author: moonlight    Posted: 2004-02-17 09:46    Length: 89 byte(s)
[Original] [Print] [Top]
请问一下xpdf 3.00如何支持中文呢?好像3.00不再支持x core font了。displayCIDFontX不能用了。
[Original] [Print] [Top]
Subject: Re: 一个xpdf 3.00的patch
Author: lucida    Posted: 2004-02-17 09:59    Length: 158 byte(s)
[Original] [Print] [Top]
改成类似这样:

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

也就是,直接使用TrueType字体

[Original] [Print] [Top]
Subject: Re: 一个xpdf 3.00的patch
Author: moonlight    Posted: 2004-02-17 13:50    Length: 20 byte(s)
[Original] [Print] [Top]
谢谢。晚上回去试一下
[Original] [Print] [Top]
Subject: Re: 一个xpdf 3.00的patch
Author: Rigel    Posted: 2004-02-17 16:44    Length: 391 byte(s)
[Original] [Print] [Top]
Uhhuh,看来你是真的没作,这个是绝对不行的。可是你又说测试过了没问题,
我也没有理由怀疑你,这可有点神了。能不能说说从 xpdf 复制出来,你是贴
到哪个程序里去了?

另外同时支持 Latin1 很简单,附上一小段 code,包括我所说的这一切。今天
我的走了,没功夫解释了,明天再说吧。
[Original] [Print] [Top]
Subject: Code
Author: Rigel    Posted: 2004-02-17 16:57    Length: 1,494 byte(s)
[Original] [Print] [Top]

// send back a list of supported conversion targets
if (*target == targetsAtom) {
if (!(array = (Atom *)XtMalloc(sizeof(Atom)*2))) {
return False;
}
array[0] = CompoundTextAtom; // support both compound_text and
array[1] = XA_STRING; // string
*value = (XtPointer)array;
*type = XA_ATOM;
*format = 32;
*length = 2;
return True;

// Convert to compound_text
} else if (*target == CompoundTextAtom) {
XTextProperty tpr;
*value = currentSelection->getCString();
// from multi-byte to compound_text
XmbTextListToTextProperty (XtDisplay(widget), (char**)value, 1,
XCompoundTextStyle, &tpr);
*value = tpr.value;
*length = tpr.nitems;
*type = CompoundTextAtom;
*format = 8; // 8-bit elements
return True;

// Convert to string
} else if (*target == XA_STRING) {
*value = XtNewString(currentSelection->getCString());
*length = currentSelection->getLength();
*type = XA_STRING;
*format = 8; // 8-bit elements
return True;
}
[Original] [Print] [Top]
Subject: Re: Code
Author: lucida    Posted: 2004-02-18 11:37    Length: 275 byte(s)
[Original] [Print] [Top]
非常非常感谢你的帮助
新的已经测试通过了
原来的代码,的确有问题
我当时只测试了paste到kedit/konqueror/rxvt的情况,
都是正常的,后来又拿gvim/gedit试了一下,中文无法
复制出来。

anyway,现在一切都正常了。:)
[Original] [Print] [Top]
Subject: Re: Code
Author: luo_chong    Posted: 2004-02-26 15:47    Length: 60 byte(s)
[Original] [Print] [Top]
有没有新的补丁啊。最好提交给原作者,这样我们省得自己打了 :-)
[Original] [Print] [Top]
Subject: Re: Code
Author: waq    Posted: 2004-03-16 17:54    Length: 20 byte(s)
[Original] [Print] [Top]
亲历开源的成功之处。
----
我是低手!
[Original] [Print] [Top]
Subject: xpdf 3.00的patch网址变更
Author: don king    Posted: 2004-07-30 10:18    Length: 481 byte(s)
[Original] [Print] [Top]
lucida的GNU/Linux中文Patch网址
http://61.153.200.30/lucida/linux-patch/

xpdf 3.00的patch
http://61.153.200.30/lucida/linux-patch/files/xpdf-3.0-cjk-font.diff

Thanks a lot,
Good luck!
----
海外浪子,漂泊的云
[Original] [Print] [Top]
Subject: Re: 一个xpdf 3.00的patch
Author: slamok    Posted: 2004-08-01 06:25    Length: 351 byte(s)
[Original] [Print] [Top]
奇怪,我的gentoo box无论怎么设置(试了修改.Xdefaults 或修改/etc/X11/app-defaults/Xpdf文件)都无法让中文标签显示出来,仍然是乱码,正本内容可以显示,但仍会有

Error: Illegal entry in bfchar block in ToUnicode CMap

显示出来,但好象不影响内容显示。我用的是gentoo的xpdf-3.00-r1

不知大家有没有什么办法?
[Original] [Print] [Top]
Subject: Re: 一个xpdf 3.00的patch
Author: lionchong    Posted: 2004-09-16 19:56    Length: 1,179 byte(s)
[Original] [Print] [Top]
xpdf3.00, suse linux 9.1 pro
我照你的步骤一步步做了,locale也改成了zh_CN.GBK, 先在书签中文能够正确显示,但是正文中的非内嵌字体编码不正确,不知道为什么?效果如图。能帮帮忙马?我把字体换成simsun.ttf, 还有其它的,显示还是不正确。.xpdfrc 的相关设置如下
#----- begin Chinese Simplified support package (2004-jul-27)
cidToUnicode Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN /usr/local/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN /usr/local/share/xpdf/chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK /usr/local/share/xpdf/chinese-simplified/GBK.unicodeMap
cMapDir Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/CMap
toUnicodeDir /usr/local/share/xpdf/chinese-simplified/CMap
displayCIDFontTT Adobe-GB1 /usr/share/fonts/simhei.ttf
#displayCIDFontTT Adobe-GB1 "-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-*" ISO-2022-CN
#----- end Chinese Simplified support package

textEncoding GBK
~~~~~~~~~~这里似乎只对书签编码有效?
多谢多谢
--
[Original] [Print] [Top]
« Previous thread
关于OpenOffice 1.1rc5的问题
Linux 中文环境和中文化
15
Next thread »
高手救救我!困扰了两周的中文显示问题
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 02:03:15, cost 0.048346042633057 ms.