




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、openOffice簡介OpenO 是一套跨平臺的辦公室軟件套件,能在Windows、Linux、MacOS X (X11)和 Solaris 等操作系統上執行。它與各個主要的辦公室軟件套件兼容。OpenO 是自由軟件,任何人都可以免費下載、使用及推廣它。2、 下載地址/download/index.html3、 安裝4、 使用示例將doc文檔轉換成html格式的文檔1、 下載Jodconverter, 2、 創建工程,導入jodconverter-2.2.2lib中的jar包3、 書寫
2、代碼邏輯package office;import java.io.File; import .ConnectException; import com.artofsolving.jodconverter.DocumentConverter; import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection; import com
3、.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter; public class OfficeConverter public static void main(String args) File inputFile = new File("F:/test/yy.doc"); File outputFile = new File("F:/test/yy.html"); OpenOfficeConnection con = new SocketOpenOffi
4、ceConnection(8100); try con.connect(); catch (ConnectException e) System.err.println("文件轉換出錯,請檢查OpenOffice服務是否啟動。"); e.printStackTrace(); DocumentConverter converter = new OpenOfficeDocumentConverter(con); converter.convert(inputFile, outputFile); con.disconnect(); 4. 啟動OpenOffice的一項服務,注意在
5、openOffice的安裝目錄下 soffice.exe -accept="socket,port=8100;urp;"官網啟動命令:soffice -headless -accept="socket,host=,port=8100;urp;" -nofirststartwizard可以使用netstat -a監聽8100端口5. 在F盤創建test目錄,創建yy.doc6. 運行java代碼,效果如下,會發現test目錄下多出來一個yy.html文件,測試后發現: doc可以轉html,pdf,無法轉xls Xls可以轉html,pd
6、f,無法轉doc,xls轉換成的html,無法再轉回xls html,可以轉換成doc,pdf txt,可以轉換成doc,html,pdf5、 文件亂碼問題當我們讀取的文件是從遠程機器上面讀取的時候,需要注意一下編碼問題。 情形是這樣的: 遠程機器是Linux,而我本機的是windows。 linux默認編碼utf-8,而windows是gbk。 上傳一個文件到遠程機器上,并且操作過遠程機器上的文件,如拷貝,重寫,新建一個文件,很可能導致本機上讀取該文件的時候出現錯誤。 原來我們寫代碼是這樣的:BufferedReader br = new BufferedReader(new InputSt
7、reamReader(new FileInputStream(htmlFile);而沒有管后面的編碼問題。 造成讀數據的時候會出現亂碼問題。 現在需要這樣讀:BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(htmlFile),Charset.defaultCharset();Charset.defaultCharset()是獲取服務器默認編碼。這樣讀出來不管是在哪里都沒問題。 不過由于日常開發我們是在eclipse下面開發的,通常我們會設成utf-8的編碼,這樣就導致 Chars
8、et.defaultCharset() = utf-8. 從而在windows下讀取本地文件的時候會出現亂碼。6、 直接在代碼中啟動openOffice1. 需要用的軟件 OpenOffice 下載地址/ JodConverter 下載地址 2.啟動OpenOffice的服務 我到網上查如何利用OpenOffice進行轉碼的時候,都是需要先用cmd啟動一個soffice服務,啟動的命令是:soffice -headless -a
9、ccept="socket,host=,port=8100;urp;"。 但是實際上,對于我的項目,進行轉碼只是偶爾進行,然而當OpenOffice的轉碼服務啟動以后,該進程(進程名稱是soffice.exe)會一直存在,并且大約占100M的內存,感覺非常浪費。于是我就想了一個辦法,可以將執行該服務的命令直接在JAVA代碼里面調用,然后當轉碼完成的時候,直接干掉這個進程。在后面的JAVA代碼里面會有解釋。 所以,實際上,這第2步可以直接跳過 3.將JodConverter相
10、關的jar包添加到項目中 將JodConverter解壓縮以后,把lib下面的jar包全部添加到項目中 4. 下面就是重點嘍,詳見Java代碼解析 附件里面有現成的可以用的項目示例,直接導入eclipse就可以運行/* * 將Office文檔轉換為PDF. 運行該函數需要用到OpenOffice, OpenOffice下載地址為 * / * * <pre> * 方法示例: * String sourcePath = "F:officesource.doc"
11、* String destFile = "F:pdfdest.pdf" * Converter.office2PDF(sourcePath, destFile); * </pre> * * param sourceFile * 源文件, 絕對路徑. 可以是Office2003-2007全部格式的文檔, Office2010的沒測試. 包括.doc, * .docx, .xls, .xlsx, .ppt, .pptx等. 示例: F:officesource.doc * param destFile * 目標文件. 絕對路徑. 示例: F:pdfdest.pdf
12、* return 操作成功與否的提示信息. 如果返回 -1, 表示找不到源文件, 或perties配置錯誤; 如果返回 0, * 則表示操作成功; 返回1, 則表示轉換失敗 */public static int office2PDF(String sourceFile, String destFile) try File inputFile = new File(sourceFile);if (!inputFile.exists() return -1;/ 找不到源文件, 則返回-1/ 如果目標路徑不存在, 則新建該路徑File outputFile = new File(de
13、stFile);if (!outputFile.getParentFile().exists() outputFile.getParentFile().mkdirs();String OpenOffice_HOME = "D:Program FilesOpenO 3"/這里是OpenOffice的安裝目錄, 在我的項目中,為了便于拓展接口,沒有直接寫成這個樣子,但是這樣是絕對沒問題的/ 如果從文件中讀取的URL地址最后一個字符不是 '',則添加''if (OpenOffice_HOME.charAt(OpenOffice_H
14、OME.length() - 1) != '') OpenOffice_HOME += ""/ 啟動OpenOffice的服務String command = OpenOffice_HOME+ "programsoffice.exe -headless -accept="socket,host=,port=8100;urp;""Process pro = Runtime.getRuntime().exec(command);/ connect to an OpenO instance running on port 8100OpenOfficeConnection connection = new SocketOpenOfficeConnection("", 8100);connection.connect();/ convertDocumentConverter converter = new OpenOfficeDocumentConverter(connection);converter.convert(inputFile, outputFile);/ close the conn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 用電客戶受理員-中級工復習題(含答案)
- 2025工程建設項目施工勞務分包合同范本
- 農村農牧綜合開發項目合同書
- 存量房屋居間買賣合同
- 電商平平臺運營及推廣合作框架協議
- 2025建融金服(河南)科技信息服務有限公司甘肅分公司招聘30人筆試參考題庫附帶答案詳解
- 2025年蚌埠市龍子湖區產業發展有限公司招聘22人筆試參考題庫附帶答案詳解
- 考前沖刺紡織設計師證書考試題目及答案
- 教育評價改革的路徑與實踐探索
- 起草合同協議書
- 空調移機安裝合同協議書范本
- 高中語文說課評價表
- 橡膠止水帶施工工藝及質量驗收
- 《中醫養生課件:針灸》
- 訂單成本管理辦法
- 2023成都薪酬報告
- 一年級語文下冊培優輔差記錄表(十二篇)
- 起重吊裝工程安全專項施工方案【實用文檔】doc
- 基于triz創新方法的便攜式雨傘
- 童年歌詞 一頁直接打印版
- 輔導員的工作流程與工作方法
評論
0/150
提交評論