0

問題があります: 私のアプリケーションは、OOo API で操作し、(コーディングの非互換性の理由で) 間違いから免れるために、(別のシステムからインポートされた) ms word ドキュメントを rtf ドキュメントに変換する必要があります。

質問: Java アプリケーションから直接 ms word 文書を操作するにはどうすればよいですか? コーディングの非互換性なしで作業を行うことができる API (POI や OOo など) はありますか?

私のシステムは Linux サーバー マシン (公開用のすべての運用システムなど) で実行され、OOo のみをインストールしました。

OOo Java API を使用すると、ドキュメントを開いたり、操作したり、保存したりできますが、この最後の時期に、Ms Word のクローズド コーディングと OOo オープン ドキュメント フォーマットのコーディングとの間のコーディングの非互換性に関する多くの問題が見られます (私が参照するスライターに)。多くの場合、特定の箇条書き (例: '-' またはネストされたリスト)、ページ番号付け (例: x 形式の 1)、およびその他の多くの書式設定オプションを含むリストでは、出力ドキュメント (操作による) には、次の理由による多くのエラーが表示されます。 2 つのコーディング形式間の非互換性だと思います。

現在、私は Apache POI の機能を調べて、それで Ms Word を開くことができるかどうかを理解し、ドキュメントを RTF 形式で保存し、非互換性を最小限に抑えることができる交換形式を検討しています。

同じ問題がありますか?より強力な POI を備えた Java オープン ソース ライブラリを教えてください。または、POI + iText などの組み合わせたアプローチを提案して、ms word から rtf への変換ステップを実行できますか?

4

2 に答える 2

1

ドキュメントを tiff に確実に変換する方法を提供するように求められたとき、私はいくつかの調査を行いました。ms.docs をレンダリングできると主張する無料および商用のライブラリが多数あります。100% 正確なレンダリングを提供するものはありません。

私がしなければならなかった方法は、ラッパーで MS Word を実行し、それを操作して、OLE オートメーションを介して必要なことを行うことでした。これ (バックグラウンドで Word を実行すること) 自体にはいくつかの落とし穴がありますが、よく考えられた設計により、機能させることができます。

必要なのはドキュメントを開いて名前を付けて保存することだけなので、あなたのケースは私のケースよりもさらに簡単です。

編集

@パオロ - どうぞ。私は同じことを経験しました-OOが含まれるさまざまなパッケージを評価し、それらがmmmmであることがわかりました...正確ではありません。もちろん、それはすべて、顧客がドキュメントの書式設定についてどれだけ厳格かによって異なります。私のものは非常にうるさいものでした-余白のサイズと画像の配置まで。

別のオプションは、不正確さのリストを提供する (そして承認を得る) ことです。残念ながら、すべての新しいドキュメントで、新しいドキュメントをヒットするチャンスがあります

于 2009-11-27T16:49:11.990 に答える
0

Docvertを使用すると、Word ドキュメントを Open Office 形式に変換する Web サービスを設定できます。ただし、OLE オブジェクトには問題があります。

于 2010-04-12T04:39:04.433 に答える