關於在web項目中將pdf文件顯示成swf文件的相關詳細說明

前段時間由於客戶的需要,不想隨便讓訪問系統的人將pdf文件保存下來(現在系統中的是adobe reader去讀pdf文件,adobe reader中有個保存的功能 ),故引出轉換成swf文件來顯示的問題。

1.首先說一下技術實現的大概思路,用swftools將pdf轉換成swf,而對於這個swf文件有一個FlexPaper的軟件可以很好的將swf文件顯示出來,這裏要說明的一點是,swf文件雖然也可以在網頁中直接的顯示出來,但是並沒有實現一些打印、多頁、兩頁、搜索等功能,所以用到了FlexPaper。

2.具體的應用方法如下:

先下載swftools-0.9.1xpdf,將安裝的目錄放到系統環境變量path中(注意最好將安裝目錄路徑放到path的前面,如C:\Program Files (x86)\SWFTools,方便在命令窗口下運行,轉換pdf文件語法格式是:pdf2swf.exe -t E:\test.pdf -o D:\a.swf  -s flashversion=9 -s languagedir=C: \\xpdf\\xpdf-chinese-simplified -s poly2bitmap -s

介紹一下上面的語句pdf2swf.exe是調用swftools程序;-t 是你想要轉換的pdf文件路徑;-o 是目標路徑; -s flashversion=9 是將swf文件設置成9版本(注意這個參數很重要,如沒有加的話,可能引起FlexPaper中不能顯示的問題);-s languagedir=C: \\xpdf\\xpdf-chinese-simplified 這個就是處理轉換pdf中文問題的關鍵語句,這個路徑下包含了中文的字體類型;最後一個-spoly2bitmap 的用途是當這個pdf文件過大時,轉換出錯的問題。對於swftools語句中參數詳細的含義另見我博客中的swftools詳細參數解譯

對於xpdf的補充說明:下載完成後,還需要修改xpdf下chinese-simplified\add-to-xpdfrc文件如圖

3.將生成好的swf文件用FlexPaper顯示出來,下載FlexPaper_1.4.7_flash

查看其中的事例文件interactive_API.html,你可以知道怎麼去用它。主要的說一下吧:

首先在你的jsp中引入flexpaper_flash.js腳本,然後在body標籤中定義想顯示swf的位置,如下:

介紹下上圖的4個參數吧,其它的大家應該都可以見詞知意了。

第一個參數就是這個文件的框架,上面的路徑指的是這個文件的上一級目錄,就不在多說了,要用這個FlexPaper的話需要將這個文件也考到你的相應JSP同級目錄中。

第二個參數就是a標籤的id。

第三個參數是引用的swf文件路徑,這裏需要注意的是如果你想在一個web項目中引入一個絕對路徑是不允許的,這個問題我試了很多遍都沒有實現引用絕對路徑。所以建議將生成的生成的swf文件放到服務器中部署的文件中,這樣引用時swfFile後面就可以寫成‘../a.swf’,一定要注意是部署的文件中。因爲這涉及了jsp兩種獲得絕對路徑的方式,如你在JSP中用application.getRealPath("/")去獲得開發環境下面的項目絕對路徑的放,當這個項目部署時就會出錯找不到這個路徑的錯誤。應該用this.getClass().getClassLoader().getResource("/").getFile()來獲得絕對路徑,將swf文件放到這個絕對路徑下。

第四個參數是設置FlexPaper框架顯示的中文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章