Adobe Reader解决有的中文PDF不能正常显示

系统字体配置、中文显示和输入法问题
回复
头像
a14331990
帖子: 604
注册时间: 2009-03-25 9:38
系统: Fedora 22 x86_64

Adobe Reader解决有的中文PDF不能正常显示

#1

帖子 a14331990 » 2012-06-19 13:59

安装包来自
ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.5.1/
语言支持包来自
ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.1/misc/

装好Adobe Reader 9以及语言支持包
还是会有中文PDF不能显示

原因是SimSun或SimHei没有嵌入PDF
而Adobe Reader在Linux上找不到它们(即使fc-list显示系统上有它们)

解决办法是禁止Adobe Reader 9在本地寻找字体
export ACRO_DISABLE_FONT_CONFIG=1

其实这个在/usr/bin/acroread中
就有

代码: 全选

# Enable this if you donot want Adobe Reader to cache Font-config fonts 
# ACRO_DISABLE_FONT_CONFIG=1
# export ACRO_DISABLE_FONT_CONFIG
于是所有字体均被Adobe自带的字体替换

另一个环境变量是PSRESOURCEPATH用于指定使用字体的目录
Adobe Reader默认在如下目录搜索字体
1.系统字体目录(比如/usr/share/fonts下的很多子目录,~/.fonts);
2.PSRESOURCEPATH指定的目录
如果ACRO_DISABLE_FONT_CONFIG=1,系统字体目录不会被搜索,PSRESOURCEPATH指定的目录依然有效
比如微软字体一般装在/usr/share/fonts/truetype
可以写
export PSRESOURCEPATH=/usr/share/fonts/truetype
但是注意如果/usr/share/fonts/truetype目录下有黑体则某些中文PDF依然不能正常显示

在ACRO_DISABLE_FONT_CONFIG=1的情况下指定PSRESOURCEPATH目的是为了一些避免字体被Adobe自带的字体替换
于是
sudo mkdir /opt/common-fonts
sudo ln -s /usr/share/fonts/truetype/* /opt/common-fonts/
sudo rm /opt/common-fonts/simsun.ttc
sudo rm /opt/common-fonts/simhei.ttf (注意没有实际删掉这两个字体,删的是软连接)
指定PSRESOURCEPATH
export PSRESOURCEPATH=/opt/common-fonts

总结
在/usr/bin/acroread里面加上

代码: 全选

export ACRO_DISABLE_FONT_CONFIG=1
export PSRESOURCEPATH=/opt/common-fonts
其中/opt/common-fonts里面包含一些不想被替换的常用字体,如微软字体,而且里面没有simsun.ttc和simhei.ttf

最后是效果图
黑体被Adobe自带字体替换
黑体被Adobe自带字体替换
黑体被Adobe自带字体替换
Arial没有被替换,依然使用/opt/common-fonts目录下的字体文件
Arial没有被替换,依然使用/opt/common-fonts目录下的字体文件
Arial没有被替换,依然使用/opt/common-fonts目录下的字体文件
Arial-not-substituted.png (6.52 KiB) 查看 2628 次
参考
/opt/Adobe/Reader9/Reader/help/ENU/ReadMe.htm
http://forums.adobe.com/thread/418939
qq 591799783
email a14331990#hotmail.com a14331990#163.com
回复