2009-11-27 193 views
0

我遇到了一個問題:我的應用程序必須將ms word文檔(從另一個系統導入)轉換爲rtf文檔,才能使用OOo API進行操作並避免錯誤(編碼不兼容原因)。MS Word文檔到RTF文檔

我問你:我怎樣才能直接從我的Java應用程序操縱ms文檔?有API(如POI或OOo)可以讓我在沒有任何編碼不兼容性的情況下完成我的工作?

我的系統運行在Linux服務器上(例如所有公開的生產系統),我只安裝了OOo。

使用OOo java API我可以打開,操作和保存文檔,但在最後一段時間,我正在查看許多有關Ms Word閉合編碼和OOo opend文檔格式之間編碼不兼容的問題編碼(我指swriter)。 在許多情況下,輸出文檔(來自操作)顯示許多錯誤,這些錯誤是由於以下原因(例如,' - '或嵌套列表),頁碼(例如,x格式的1)以及許多其他格式化選項,我認爲,兩種編碼格式之間不兼容。

現在,我正在研究Apache POI功能,以便了解是否可以打開Ms Word,並將文檔保存爲RTF格式和交換格式,以便將不兼容性降至最低水平。

你有同樣的問題嗎?你能指示我一個Java開放源碼庫更POI powefull?或者,你能建議我採用POI + iText這樣的組合方法來將轉換步驟ms字轉換爲rtf嗎?

回答

1

當我被要求提供一種可靠地將文檔轉換爲tiff的方法時,我做了一些研究。這裏有很多圖書館 - 既有免費的也有商業的,它們聲稱可以呈現ms.docs。沒有一個提供100%準確的渲染。

我不得不這樣做的方式是在包裝中運行MS Word,並通過OLE自動化操作來執行我需要的操作。這(在後臺運行Word)本身已經安靜了一些陷阱,但通過周到的設計,你可以使它工作。

您的情況比我的更容易,因爲您只需打開文檔並將其保存爲。

編輯

@Paolo - 你去那裏。我也經歷過同樣的事情 - 評估各種軟件包,包括OO,並發現它們是毫米......不精確。當然,這一切都取決於客戶對文檔格式的嚴格要求。礦山非常挑剔 - 邊緣尺寸和圖片定位。

另一種選擇是給出(並獲得批准)不精確列表。不幸的是,對於每個新文檔,您將有機會創建新文檔

+0

謝謝,但正如我之前在Linux服務器上所說的,我沒有安裝Ms Office,因此我正在研究一個Java庫,它允許我以RTF編程方式將Ms Word文檔轉換爲使用OOo API接口在兼容模式下工作在最後一種類型上。 謝謝answear。最好的問候, -Paolo P.S .:是否有人知道一個這樣的Java庫(即更強大的POI)? – 2009-11-30 07:31:23

0

如果您的目標計算機上安裝了Word,則可以使用Microsoft Office Automation界面。這是一組COM組件,您可以使用它打開,創建和保存Word文檔。 (您可以通過編程方式實際控制Microsoft Word的安裝。)

如果安裝了Word,則應該有一個名爲「Microsoft Word XX.X Object Library」的註冊類型庫。我不知道如何從Java訪問COM。

+0

爲什麼downvote? – 2009-11-27 17:14:14

0

Docvert允許您設置一個Web服務,將Word文檔轉換爲Open Office格式。儘管如此,它仍然在OLE對象上展開。

+0

嗨口袋, 首先,感謝您的回覆! 我需要一套Java API,它允許我自動執行MS Word文檔的操作過程。 此時,作爲替代解決方案,我們獲得了PDF版本的文檔並使用iText和它的水印功能;但是,正如你所能理解的那樣,這是一個非常有限的解決方案。 Regars, - Paolo – 2010-04-12 11:51:30