免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1611 | 回复: 1
打印 上一主题 下一主题

[系统安装] 最新的 xpdf 3.03 中文书签栏显示补丁 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-07 23:39 |只看该作者 |倒序浏览
最近要用tex 为单位做个幻灯片,要用用 xpdf, 可书签老乱码,查了一下,要 patch 一下,可惜 老版的 patch 只到 3.01版就没有了,可这个版本的 xpdf 在 我的 wheezy上无法编译,于是分析了一下 前版3.0 的patch ,其实方法很简单,如下图,分三个步骤
一、
只要找到 xpdf-3.03/xpdf/XPDFViewer.cc 这个文件修改一行代码,取消掉xpdf原先书签使用的 unicode 编码,用 xpdvrc 中的 gbk  编码替代即可。

//  mydiff      uMap = globalParams->getUnicodeMap(enc);

        if (!(uMap = globalParams->getTextEncoding())) {
       uMap = globalParams->getUnicodeMap(enc);          
        }
// mydiff
二、
另外注意 在  xresource 中加个
simsun.ttc -misc-simsun-medium-r-normal--0-0-0-0-p-0-gbk-0 的 xpdffontlist,注意写法规范。
但 mkfontscale 现在出不了 gbk的编码,只好网上查找一下抄改一下。  fonts.dir fonts.scale  这两个文件。然后重启一下X
三、
xpdf -enc GBK  或是在  ~/.xpdfrc 中加入  textEncoding                GBK
搞定。有时在网上乱搜乱下,真不如改改代码来的方便。改代码花了我五分钟,可查 xpdf 的中文书签 方法却浪费了我一个下午,shit,该死的方向性错误。

欲速则不达啊

xpdv_bookmark.jpg (86.21 KB, 下载次数: 23)

xpdv_bookmark.jpg

xpdv_code.jpg (45.42 KB, 下载次数: 23)

xpdv_code.jpg

论坛徽章:
0
2 [报告]
发表于 2013-08-08 10:32 |只看该作者
该死,复查贴子时发现漏写第一步改代码的另一点,差点误导他人。

第一步补充
还要找到  XPDFApp.cc ,在表单初始化时,增加 motif 的本地格式化语言方法。xtsetlanguageproc,

XPDFApp::XPDFApp(int *argc, char *argv[]) {
        //mydiff
   XtSetLanguageProc (NULL, NULL, NULL);
        //mydiff
  appShell = XtAppInitialize(&appContext, xpdfAppName, xOpts, nXOpts,

另外 Xresources 中xpdf 的字符集设置不一定要gbk的,gb2312 和 iso10646和gbk兼容的字符集都行。但当前 bash 的 locale 一定要是 gbk或是gb2312,因为 xtsetlanguageproc,是调用 locale 来渲染字体的。

另外在    ~/.xpdfrc 中一定要设置 map 文件位置,我的是调置在 include /usr/share/xpdf/xpdfrc-chinese-simplified,textEncoding GBK 选项 和行令行开关  -enc GBK都可以不要,因为 xpdf 是根据 locale 来确定书签和菜单字体解码与显示的。

又改了下菜单试试,也没问题,中文菜单对小朋友们挺有帮助的。linux 要从娃娃开始启蒙啊。

xpdv_menu.jpg (63.28 KB, 下载次数: 23)

xpdv_menu.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP