用java實現word轉html


  由於項目需要,要完成將上傳的word文件轉成html文件的功能。在網上搜了一下,大致有3種方法:1、用jacob實現 2、用poi實現 3、用openoffice實現。

  從網上來看好像jacob用的人最多,我就選擇了這種方法來做。需要引入jacob.jar jar包,並且jar包還要調用jacob.dll文件,需要事先把jacob.dll文件放到以下3處地方:C:\Windows\System32 目錄下,安裝的jdk文件夾下的bin目錄中,以及jre文件夾下的bin目錄(注意一定是你這個項目運行所用到的jdk和jre,如果你的機器上裝有多個,首先你要確認清楚放到哪個中)。編寫程序,運行通過,達到了想要的效果,生成了html文件,同時還生成了一個文件夾,里邊放了若干文件,包括所含的源圖片。如果你的文檔里包含圖片的話要注意生成的html中的圖片的src路徑默認的是放圖片的文件夾和生成的html文件要放到同樣的路徑中,這樣才能找得到圖片,否則圖片不能加載到html中。介於這個原因,我決定不把html文件中所含字符串存入數據庫,而是把htnl的鏈接地址存入數據庫,這樣根據這個鏈接加載的html就可正確的顯示圖片。

  接下來悲劇的事情發生了。項目要布在linux服務器上,這意味着我之前的努力全白費了。特此聲明, jacob 只支持windows服務器,不支持linux,.dll文件也是windows所特有的!所以大家在選擇采用何種方式時一定要結合自己要用的操作系統。

  萬般無奈之下只好再采用poi去做。還是要導入要用到的jar包,網上有很多實現的代碼可直接拿來用。我在本地的java項目中試着寫了這個功能(非web的),ok,生成了html文件,同時生成了所含的圖片。然后我就把代碼轉到我的web項目中,但是悲劇發生了,生成的html頁面顯示是亂碼,用notepad++打開源代碼也是亂碼。我解決了好久沒有解決,直到最后把程序中以下兩句中的編碼由“utf-8”改為“GB2312”后,問題才得以解決,但是至今還不知道為什么這樣。

serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");//一定要改成“GB2312”

FileUtils.writeStringToFile(new File(tpFile), content, "utf-8");   //一定要改成“GB2312”

  至於openoffice的方式,我沒有試。在網上搜到一些資料是這么說的:

 openoffice 會在第一次打開包含他的頁面的時候彈出小廣告。linux服務器還要解決acess問題。  
 openoffice有個服務可以開啟,再加上 jodconverter.jar 組合使用。


免責聲明!

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



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