使用SWFTools把PDF轉成可以瀏覽的SWF檔案
SWFTools,是個功能強大的SWF工具,可以把AVI影片、PNG JPEG圖片、PDF轉換成SWF格式的檔案。SWF格式是Adobe Flash匯出後的檔案,現在大部分都支援Flash的瀏覽器中都可以直接播放,Wikipedia寫說有99%的網路使用者都可以讀取swf檔案,包括任天堂Wii或是Sony的PSP。
其中pdf2swf + rfxview viewer 的功能最讓我感到驚豔。如名稱所示,他可以把PDF轉換成SWF之後,再結合rfxview viewer輸出成一個可供瀏覽的SWF檔案。瀏覽的項目包括放大、縮小、拖曳、換頁等功能,而且可以直接在網頁上播放,非常令人讚賞!有興趣的話可以先開啟範例網頁來玩玩看!
詳細的SWFTools指令,可以參考「光头的专栏 - SWFTools 命令」,裡面也介紹了中文字的解決方案。
我也把SWFTools加入了DSpace的Media-filter功能當中,這一篇則是先單純地介紹怎麼安裝SWFTools,並且把PDF轉換成SWF、並結合到SWFTools。
安裝SWFTools
SWFTools下載網頁:http://www.swftools.org/download.html,內有Windows版本跟Linux版本。
如果你跟我一樣是用CentOS的話,我們可以直接使用yum指令來直接安裝SWFTOOLS喔!
請以root身份登入,然後輸入以下指令:
[root@dspace ~]# yum -y install swftools
安裝完成之後,就可以用「pdf2swf [來源的pdf檔] [輸出的swf檔]」來作轉換喔,例如下面的指令:
[root@dspace ~]# pdf2swf input.pdf output.swf
取得rfxview.swf瀏覽器
直接用pdf2swf轉換出來的swf檔案並不具備瀏覽器的功能,必須搭配rfxview.swf才有這個效果。
rfxview.swf可以從SWFTools下載頁面中的swftools-0.9.0.tar.gz找到,我也另外備份了一份到SkyDrive跟Miroko空間當中。
實作範例
請先把PDF檔案、rfxview.swf瀏覽器放到同一個資料夾當中。
PDF範例檔案可以使用我的Blog(SkyDrive下載、Miroko下載)
轉換的指令如下:
pdf2swf -z -B [rfxview.swf瀏覽器的路徑] -s flashversion=7 -t [來源PDF] -o [輸出SWF]
於是實際上輸入的指令如下:
[dspace@dspace-course ~]$ pdf2swf -z -B rfxview.swf -s flashversion=7 -t 1.pdf -o 2.swf
你可以用以下HTML程式碼寫在網頁中以開啟轉換後的2.swf:
<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="595" HEIGHT="842" CODEBASE="http://active.macromedia.com/flash5/cabs/swflash.cab#version=8,0,0,0"> <PARAM NAME="MOVIE" VALUE="2.swf"> <PARAM NAME="PLAY" VALUE="true"> <PARAM NAME="LOOP" VALUE="true"> <PARAM NAME="QUALITY" VALUE="high"> <EMBED SRC="2.swf" WIDTH="595" HEIGHT="842" PLAY="true" ALIGN="" LOOP="true" QUALITY="high" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"> </EMBED> </OBJECT>
輸出結果應該要如下所示(SkyDrive下載、Miroko下載):
SWFTools轉出來的PDF2SWF+rfxview仍有個缺點,就是他的大圖瀏覽在一開始的顯示比例跟位置不是說很好,開啟之後無法預設用「全畫面」來瀏覽。不過暫時也找不到其他的開放原始碼的替代方案,所以就期待SWFTools繼續改版吧。
由於後來發現到不知為何使用swftools轉換pdf到swf中如果有包含中文字型「細明體」、「新細明體」或是「標楷體」的時候,就會造成轉換完成的swf字體破碎。
回覆刪除但我發現到使用「微軟正黑體」就不會有這個問題
雖然這也可能只是我在Linux上的字型有錯誤,但我還真的找不到該怎麼辦。
於是我想到在轉換成PDF的時候就用OpenOffice的替代字型,把不能使用的細明體、新細明體或標楷體統統轉換成微軟正黑體就好了。
OpenOffice的設定方法請參考這個網址:http://zh.openoffice.org/doc/ooodoc_01_10.html
因為我們使用DSpace轉換文件檔成PDF時是借用JODConverter來透過OpenOffice轉換,所以到OpenOffice去設定即可。
設定的時候要記得先把soffice關掉,不然無法開啟OpenOffice主畫面。
應該是很不錯的開源軟體,不過作為電腦小白我受不了這些代碼。
回覆刪除在briian的文章中看到一款axmag還不錯,可以試試 http://www.axmag.com/submit.html
感謝您的情報
回覆刪除不過這篇文章不是講給一般使用者的喔XD
這篇文章主要是給架在伺服器的網站工程師去開發一個可以把PDF轉成SWF的工具。簡單的指令碼可以方便系統進行自動轉檔。
聰明一點的工程師就可以用來開發出像aXmag PDF to Flash這樣的網站出來提供服務。
請問有沒有swf 轉成pdf
回覆刪除To 4樓wangkuowei,
回覆刪除把swf放在網頁上,然後列印網頁成為PDF吧