之前公司的项目涉及到将PDF转换成SWF格式在浏览器中显示的问题,当时选择使用开源的swftools,但是这个插件在linux上安装有两个问题需要我们注意:
一. swftools需要freetype-2.4.6.tar.gz和jpegsrc.v8c.tar.gz两个组件,才能编译通过;
二. 在转换包含中文的PDF文档时,常常会因为缺少所需的字体而出现乱码,或者干脆就没有文字。
当时也是查了很多前辈大牛的资料,才安装成功,现在整理一下安装的过程,作为存储。
安装过程:
1. 下载swftools-2011-01-23-1815.tar.gz和freetype-2.4.6.tar.gz、jpegsrc.v8c.tar.gz两个组件(附件中有)
2. 执行一下命令,安装两个组件
tar -xzvf freetype-2.4.6.tar.gz
cd freetype-2.4.6
./configure
make
make install
tar -xzvf jpegsrc.v8c.tar.gz
cd jpeg-8c
./configure
make
make install
3. 安装swftools
tar -xzvf swftools-2011-01-23-1815.tar.gz
cd swftools-2011-01-23-1815
ldconfig /usr/local/lib
./configure
make
make install
安装完成后执行一下,pdf2swf -h 有帮助内容显示,则证明安装成功
如果所转换的PDF不包含中文,则到此为止就可以正常使用了。
如果包含中文,就需要使用到xpdf的字体库
4. 到http://www.foolabs.com/xpdf/download.html下载xpdf-chinese-simplified.tar.gz
tar -xzvf xpdf-chinese-simplified.tar.gz
解压到任意路径,例如/usr/local/xpdf/xpdf-chinese-simplified
下载
http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gkai00mp.ttf.gz
http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gbsn00lp.ttf.gz
解压出ttf文件gkai00mp.ttf和gbsn00lp.ttf,放到/usr/local/xpdf/xpdf-chinese-simplified/CMap/路径下
5. 配置/usr/local/xpdf/xpdf-chinese-simplified/add-to-xpdfrc文件
#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode Adobe-GB1 /usr/local/xpdf/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN /usr/local/xpdf/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN /usr/local/xpdf/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK /usr/local/xpdf/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir Adobe-GB1 /usr/local/xpdf/xpdf-chinese-simplified/CMap
toUnicodeDir /usr/local/xpdf/xpdf-chinese-simplified/CMap
displayCIDFontTT Adobe-GB1 /usr/local/xpdf/xpdf-chinese-simplified/CMap/gkai00mp.ttf
displayCIDFontTT Adobe-GB1 /usr/local/xpdf/xpdf-chinese-simplified/CMap/gbsn00lp.ttf
#----- end Chinese Simplified support package
注意红色部分的路径,需要按照实际xpdf-chinese-simplified文件夹的路径修改。
如果在转换过程中出现:
Error: Couldn't find a font for '宋体'
或者
ERROR Internal error: No current splash fontinfo
或者
ERROR Invalid charid 1 for font 0x60000000000ac370 (0 characters)
需要自己在网上,或者本机的c:/Windows/fonts目录下寻找相应的确实字体(例如‘宋体’),然后放置在CMap文件夹内,按照斜线部分在add-to-xpdfrc文件中添加相应的配置,即可。
freetype-2.4.6.tar.gz 下载地址:https://skydrive.live.com/redir?resid=50E13C8D81C05C21!970
jpegsrc.v8c.tar.gz 下载地址:https://skydrive.live.com/redir?resid=50E13C8D81C05C21!969
xpdf-chinese-simplified.tar.gz 下载地址:https://skydrive.live.com/redir?resid=50E13C8D81C05C21!968