以前和咱們項目的團隊一塊兒醞釀了一個項目,公司的業務文檔技術文檔比較多,但都比較分散,雖然經過FTP或其餘方式聚合起來了,但感受仍是不夠方便。html
另外公司每次都來新員工,新員工都須要一些培訓,比較耗時,比較好的方法是把之前的配置錄製視頻而後線下先給新員工本身看,但時間久了,資料或視頻老是找不到或不是最新等等。linux
因而咱們團隊想了一個項目,把已有的資料和視頻從線下放到線上,就是能經過一個網站在線看office資料和視頻。而且還能對資料評價和點贊等,根據點贊或想學等數據再決定是否對新員工或老員工來一次組織交流。windows
最開始的項目是參考百度文庫,把Office資料轉換爲flash,視頻資料直接存放,而後經過網站在線觀看,用了flashpager這個軟件,大致代碼以下:less
String converter = pt.getFlashPaperUrl() + "/FlashPrinter.exe -o " + savePath + swfName + ".swf " + documentName; Process p = pro.exec(converter);
經過調用Process執行FlashPrinter.exe,而後傳遞指令和要轉換的文件便可轉換。socket
但公司去windows化和去microsoftoffice。這個exe只能運行在windows下,因而從新換了一個方法,在linux下自動把office文檔轉換爲Html。字體
因爲不能用微軟的office,因而選用了openoffice,我本地下載的openoffice4.0.1,安裝後先啓動監聽:網站
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &視頻
JAVA代碼就能夠鏈接8100端口讓openoffice幫咱們把office文檔轉換爲Html。htm
我採用jodconverter-2.2.1.jar包,代碼大致以下:blog
OpenOfficeConnection con = new SocketOpenOfficeConnection("127.0.0.1", 8100); con.connect(); // 建立轉換器 DocumentConverter converter = new OpenOfficeDocumentConverter(con); // 轉換文檔問html converter.convert(docFile, htmlFile); // 關閉openoffice鏈接 con.disconnect();
這樣就把office文檔轉換爲html文件:htmlFile了。
但ppt默認是轉換爲一個html文件,每一頁ppt會生成一個圖片,而且html文件是上一頁下一頁的形式每次只能看到一頁ppt。咱們但願把這個html直接展示全部ppt頁的圖片。因而稍微改造了下,把ppt轉換爲html後的文件夾下全部圖片作輪訓,而後拼接一個html文件:
<br><center><img src=" + tempDate + "/" + imgName+ " alt=\"\"></center>
開發完成後,發現很是完美。
但後面仍是遇到了兩個坑,分析了好久才發現。
一、部分ppt轉換Html始終是亂碼。
二、部分word文檔轉換爲html始終是空白。
上面兩個問題折騰了比較久,有問題的office始終有問題,沒有問題的office必定能轉換成功,分析了好久才發現問題。
最後通過一頁一頁ppt,一個一個文字刪除和轉換才發現。
第一個問題ppt裏若是有備註經過openoffice轉換爲html就會是亂碼,而且內容不多。
第二個問題是word文檔裏部分文字複製到openoffice的文檔裏,可能有文字字體不兼容致使。就是好比wps打開這個word,看到都是宋體,但把文字複製到openoffice裏,發現有幾個字不是宋體了。
解決方法暫時是:
第一個問題把全部ppt的備註人工刪除了,就能轉換成功了。
第二個問題簡單解決方法是把全部文字的字體都再從新修改爲同樣的字體,好比修改爲宋體。
但願能給其餘有類試想法或遇到相同問題的帶來幫助,轉載請註明來自:http://lawson.cnblogs.com