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

这篇博客分享了解决Swftools在转换PDF至SWF时出现中文乱码的解决方案。问题源于缺少相应字体文件,特别是Adobe-GB1和GBK-EUC-H字体。通过下载xpdf-chinese-simplified包,包含所需的gbsn00lp.ttf和gkai00mp.ttf字体文件,并修改配置文件路径,添加相应参数,最终成功解决乱码问题。转换时需使用pdf2swf并指定语言包路径。
摘要由CSDN通过智能技术生成

前段时间安装了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)

cidToUnicodeAdobe-GB1/usr/local/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode

unicodeMapISO-2022-CN/usr/local/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap

unicodeMapEUC-CN/usr/local/xpdf-chinese-simplified/EUC-CN.unicodeMap

unicodeMapGBK/usr/local/xpdf-chinese-simplified/GBK.unicodeMap

cMapDirAdobe-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

#fontFileCCAdobe-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转换中文乱码的问题了

本文转载自高手博客!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值