把office文檔轉換為html過程中的一些坑

來源:互聯網
上載者:User

把office文檔轉換為html過程中的一些坑
之前和我們項目的團隊一起醞釀了一個項目,公司的業務文檔技術文檔比較多,但都比較分散,雖然通過FTP或其他方式彙總起來了,但感覺還是不夠方便。 另外公司每次都來新員工,新員工都需要一些培訓,比較耗時,比較好的方法是把以前的配置錄製視頻然後線下先給新員工自己看,但時間久了,資料或視頻總是找不到或不是最新等等。 於是我們團隊想了一個項目,把已有的資料和視頻從線下放到線上,就是能通過一個網站線上看office資料和視頻。並且還能對資料評價和點贊等,根據點贊或想學等資料再決定是否對新員工或老員工來一次組織交流。 最開始的項目是參考百度文庫,把Office資料轉換為flash,視頻資料直接存放,然後通過網站線上觀看,用了flashpager這個軟體,大體代碼如下: String converter = pt.getFlashPaperUrl() + "/FlashPrinter.exe -o " + savePath + swfName + ".swf  " + documentName;Process p = pro.exec(converter);  通過調用Process執行FlashPrinter.exe,然後傳遞指令和要轉換的檔案即可轉換。 但公司去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。 代碼大體如下:

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檔案: 1<br><center><img src=" + tempDate + "/" + imgName+ " alt=\"\"></center> 開發完成後,發現非常完美。 但後面還是遇到了兩個坑,分析了很久才發現。 1、部分ppt轉換Html始終是亂碼。 2、部分word文檔轉換為html始終是空白。 上面兩個問題折騰了比較久,有問題的office始終有問題,沒有問題的office一定能轉換成功,分析了很久才發現問題。 最後經過一頁一頁ppt,一個一個文字刪除和轉換才發現。 第一個問題ppt裡如果有備忘通過openoffice轉換為html就會是亂碼,並且內容很少。 第二個問題是word文檔裡部分文字複製到openoffice的文檔裡,可能有文字字型不相容導致。就是比如wps開啟這個word,看到都是宋體,但把文字複製到openoffice裡,發現有幾個字不是宋體了。 解決方案暫時是: 第一個問題把所有ppt的備忘人工刪除了,就能轉換成功了。 第二個問題簡單解決方案是把所有文字的字型都再重新修改成一樣的字型,比如修改成宋體。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.