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

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

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

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 -sapp

介紹一下上面的語句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文件如圖 jsp

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

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

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

介紹下上圖的4個參數吧,其它的你們應該均可以見詞知意了。this

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

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

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

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

相關文章
相關標籤/搜索