之前公司的項目涉及到將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