[ 轉 ] 使用SWFTools把PDF轉成可以瀏覽的SWF檔案

liang | 2010-01-18 09:48:54 | PHP


來源:布丁布丁吃?



SWFTools,是個功能強大的SWF工具,可以把AVI影片、PNG JPEG圖片、PDF轉換成SWF格式的檔案。SWF格式是Adobe Flash匯出後的檔案,現在大部分都支援Flash的瀏覽器中都可以直接播放,Wikipedia寫說有99%的網路使用者都可以讀取swf檔案,包括任天堂Wii或是Sony的PSP。



image



其中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找到,我也另外備份了一份到SkyDriveMiroko空間當中。




實作範例



請先把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:






01.<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"


02. WIDTH="595"


03. HEIGHT="842"



05.  <PARAM NAME="MOVIE" VALUE="2.swf">


06.  <PARAM NAME="PLAY" VALUE="true">


07.  <PARAM NAME="LOOP" VALUE="true">


08.  <PARAM NAME="QUALITY" VALUE="high">


09.  <EMBED SRC="2.swf" WIDTH="595" HEIGHT="842"


10.   PLAY="true" ALIGN="" LOOP="true" QUALITY="high"


11.   TYPE="application/x-shockwave-flash"



13.  EMBED>


14.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主畫面。





========================================================================

相關文章

php : array write to file (陣列存放在檔案裡) AND parse_ini_file
SVN 只匯出該版號有異動的檔案
PHP5 連線 Oracle -- 初體驗
[ 轉 ] ubuntu下利用php+sphinx構建搜索引擎,在ubuntu 8.04 64位系統下測試通過
fsockopen fwrite 模擬瀏灠器動作
PHP 時間的加減
[ 轉 ] 利用javascript 取得 GET 變數
[ 轉 ] FLV 影片轉檔
Cannot modify header information - headers already send
[ 轉 ] 使用SWFTools把PDF轉成可以瀏覽的SWF檔案

意見反應

發表意見

*匿稱

電子郵件

*內容

.

 
'*'請輸入驗證碼:
'*'為必填欄位.(If content include "href" be Deny)