解决Linux中swftools转换中文pdf时出现乱码问题

时间:2017-11-26

前段时间安装了swftools可以将pdf转换为swf文件,然后配合一个FlexPaper,就可以做成和百度图文库类似的东东了.

但是今天,我们开发的同事告诉我说pwd转换的这个会有乱码问题,我看了一下果然是乱码了.

果断打开百度,看了一下主要是由于没有相应的字体文件,所以才造成乱码的

而且在使用pdf2swf命令进行转换的时候也能看出来,命令报错了.

Error: Unknown character collection 'Adobe-GB1'
Error: Couldn't find 'GBK-EUC-H' CMap file for 'Adobe-GB1' collection
Error: Unknown CMap '{0:t}' for character collection '{1:t}'
Error: Unknown character collection 'Adobe-GB1'
Error: Couldn't find 'GBK-EUC-H' CMap file for 'Adobe-GB1' collection
Error: Unknown CMap '{0:t}' for character collection '{1:t}'
Error: Unknown font tag 'C2_2'
Error (265813): No font in show
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_2'
Error: Unknown font tag 'C2_3'

可以看出上述报错信息中是在Adobe-GB1中找不到GBK-EUC-H,既然找不到相应的那咱们就给他加上吧,但是说时容易其实弄起来也是忙活了半天,在网上有一个字体文件很难下载呀,不过这里我给大家放上我下载到的,就不用再去找了  哈哈 点击下载附件~

先说明一下,需要下载xpdf-chinese-simplified这个简体xpdf的简体中文包,这个附件中也带了,而且配备需要的两个字体,直接修改一下配置文件就能用了

其中xpdf-chinese-simplified/CMap/gbsn00lp.ttf和xpdf-chinese-simplified/CMap/gkai00mp.ttf就是需要的两个字体文件,我已经放在相应的目录了

剩下的就是修改配置文件中的路径了,打开xpdf-chinese-simplified/add-to-xpdfrc,我的内容是

#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode	Adobe-GB1	/usr/local/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap	ISO-2022-CN	/usr/local/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap	EUC-CN		/usr/local/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap	GBK		/usr/local/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir		Adobe-GB1	/usr/local/xpdf-chinese-simplified/CMap
toUnicodeDir			/usr/local/xpdf-chinese-simplified/CMap
displayCIDFontTT    Adobe-GB1    /usr/local/xpdf-chinese-simplified/CMap/gbsn00lp.ttf
displayCIDFontTT    Adobe-GB1    /usr/local/xpdf-chinese-simplified/CMap/gkai00mp.ttf
#fontFileCC	Adobe-GB1	/usr/..../gkai00mp.ttf
#----- end Chinese Simplified support package

其中/usr/local/xpdf-chinese-simplified是我解压后的xpdf-chinese-simplified路径,所以只要把这个改成你自己的就可以了

displayCIDFontTT    Adobe-GB1    /usr/local/xpdf-chinese-simplified/CMap/gbsn00lp.ttf
displayCIDFontTT    Adobe-GB1    /usr/local/xpdf-chinese-simplified/CMap/gkai00mp.ttf

这两个是在原来的内容上添加的,也就是咱们下载的两个字体文件(附件中已经包含)

之后就是使用pdf2swf进行转换了,其实并没有多少特别的,就只是指定一个语言参数就可以了

pdf2swf /Data/file02/pdf/2013/11/23/19/025062152d1f0ec89e57b0779f80887ab1.pdf 
/Data/file02/swf/2013/11/23/19/025062152d1f0ec89e57b0779f80887ab1.swf -s languagedir=/usr/local/xpdf-chinese-simplified/

其中-s languagedir=/usr/local/xpdf-chinese-simplified/就是新添加的参数,这个是要加载的语言包路径,注意和你的路径要相同哦,不然还是无效的.

到这里就解决了swftools转换中文乱码的问题了

本文转载自高手博客!

上一条:Linux-CentOS 安装XPDF 下一条:关于"implicit declaration of function 'gettimeofday' is invali

相关文章

最新文章