swftools工具將pdf文件轉換為swf文件 文字丟失


開發客戶網站時遇到了一個需求,客戶要求后台上傳pdf文件,前台能以翻書的形式直接訪問。

  首先想到的是使用js解決,用戶訪問前端頁面時,php將文件路徑發送給js,讓js呈現出來翻書的效果。在網上百度了一圈也沒有找到現成的插件。

  於是由某人提供的flash完成,這時就需要將客戶在后台上傳的pdf文件轉換為swf文件才能通過某人提供的flash呈現出來,而且需要pdf的每一頁生成一個swf文件,才能出現翻書的效果。這時又由某人提供說,swftools可以完成這個需求,於是迅速百度。

  swftools這個工具就不介紹了,因為我也只用到了其中的一小部分功能,而且還是windows版本的......

  pdf2swf.exe就是這個工具用來將pdf轉換為swf的。命令參數眾多,可以“-help”查看。

  經過研究,發現只需要兩個參數就可以,“-o”,“-help”的解釋是“-o , --output file.swf Direct output to file.swf. If file.swf contains '%' (file%.swf), then each page goes to a seperate file.”,正是需要的將pdf每一頁生成一個swf文件!!!

  還有一個參數,“-t”。

  在命令行的具體命令就是“E:\swftools>pdf2swf.exe -o e:\test\d\%.swf -t d:\pdf\127.pdf”,運行結果很順利,但是又出現了一個新問題,有的swf里文字內容沒有了

這樣的客戶肯定要罵街了啊-_-

  百度尋找原因,發現帖子都是一樣的......自行百度“swftools中文問題”,大概原因就是因為字體不支持,所以轉換的時候出不來。

  沒辦法,只能按照人家說的去嘗試一下了,果然還是有效果的,需要下載一個“xpdf-chinese-simplified”,修改文件“add-to-xpdfrc”,下載下來的路徑都是寫的unix的路徑,需要改成windows的,還有在最好加一句“displayCIDFontTT Adobe-GB1 E:\xpdf-chinese-simplified\gkai00mp.ttf”。

  這個“gkai00mp.ttf”也是需要下載的,大概應該是個字體庫之類的東西吧。

  全部搞定以后,在進入命令行,這時輸入的命令需要加一個參數了“-s”,這個參數有許多的功能,自行“-help”查閱吧。

  命令行的命令此時為“E:\swftools>pdf2swf.exe -o e:\test\d\%.swf -t d:\pdf\127.pdf -s languagedir=e:\xpdf-chinese-simplified”,大概意思就是用這個字體庫去解析pdf文件吧。

  運行以后,效果很好,沒有出現問題,單不知道pdf文件要是出現其它無法識別的字體時需要怎么辦......

  總結:swftools這個工具還是比較古老的,但是是開源的,這次也只是用到了一部分功能。不知道還有沒有其它的比較好用的轉換pdf工具。

參考:

1、https://www.cnblogs.com/luckly233/p/5036734.html

 

SWFTools下載鏈接: https://pan.baidu.com/s/1gfu7lQz 密碼: j5y2

 

案例2:訪問地址:http://blog.csdn.net/nube163/article/details/52495023

問題說明:

使用pdf2swf講pdf轉換成swf,實現在線閱讀功能,出現如下問題,原文件如下圖

打開后如下圖,文字內容丟失:

 

解決方法:

1、下載xpdf-chinese-simplified

下載鏈接: https://pan.baidu.com/s/1jHLpn4y 密碼: 8i25

2、修改目錄下的add-to-xpdfrc文件。將里面的路徑設為自己的路徑

原文件:

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

修改后:

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

注意最后一行的區別,第一種原文件的參數不起作用

 

3、字體gkai00mp.tff下載地址如下,下載后解壓放到xpdf-chinese-simplified\CMap下

http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gkai00mp.ttf.gz 

或:

鏈接: https://pan.baidu.com/s/1pKZsmfx 密碼: mdyt

4、調用pdf2swf.exe時加參數-s languagedir=C:\\SWFTools\\xpdf-chinese-simplified

 

資料:http://www.cnblogs.com/qinpeifeng107/archive/2011/08/29/2158879.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM