22

docxドキュメントをJavaオブジェクトとして読み取るためにどちらを使用するのが良いと思いますか。その理由は何ですか。

言い換えると。どのライブラリがほとんどの単語タグをサポートしていますか?

4

4 に答える 4

31

開示:私はdocx4jプロジェクトを主導しています

docx4jはpptxとxlsxも処理できますが、主にdocxの操作に使用されます。実例として、執筆時点で、docx4jフォーラムには約1000のトピックがあります。pptxフォーラムのボリュームはわずか10%です。

docxドキュメントで何をしたい場合でも、docx4jが役立つはずです。一般的なワークフローの概要が1ページにあります。

多くの一般的な要件に対して、docx4jはより高いレベルのAPIを提供します。これらには以下が含まれます:

  • docxの作成/開く/保存(もちろん)

  • さまざまなアプローチを使用したレポート/ドキュメントの生成:(i)変数の置換、(ii)XMLデータバインディング(特に強力)、および(iii)Mailmerge

  • HTML、XHTMLとしてエクスポート

  • PDFとしてエクスポート(フォントサポート付き)

それ以外の場合は、docxのJAXB表現を心ゆくまで操作できます。JAXBはJavaコミュニティ標準であり、Java 6に含まれており、EclipseLinkのMOXyに強力な代替実装があります。(POIはJAXBの代わりにXML Beansを使用します)

docxを探索し、対応するJavaオブジェクトを作成するためのJavaコードを生成するのに役立つWebアプリがあります。

もちろん、特定のタスクを念頭に置いている場合は、docx4jまたはPOIが特定の強みを持っている可能性があります。

docx4jとPOIはどちらもASLv2ライセンスです。

docx4jはアクティブに維持されます。そのソースコードはGitHubにあります。

さらに、必要に応じてdocx4jの商用サポートを利用できます。また、MergeDocxなどのいくつかの商用拡張機能も利用できます

docx4jは、OLE 2複合ドキュメント形式を実装するためのライブラリとしてPOIに依存しています。これは、私たちが感謝していることです。

于 2013-02-24T07:12:19.127 に答える
5

Apache POIの主な焦点はスプレッドシートの処理にあると思いますが、Word文書を読み取る機能があり、xmlBeanを使用して読み取ります。Docx4jは、主にjaxbを使用してdocxドキュメントを処理します。通常、jaxbではxmlからjavaオブジェクトへの変換が許可されているため、docx4jの方が適していると思います。

于 2013-02-21T23:58:02.930 に答える
4

docxドキュメントを扱っている場合、docx4jはApachePOIよりも便利です。次のリンクを使用して、docx4jの基本を学ぶことができます。また、docx4jの素敵なフォーラムがあります。

1. http://blog.iprofs.nl/2012/09/06/creating-word-documents-with-docx4j/ 2. http://www.smartjava.org/content/create-complex-word-docx-ドキュメント-プログラム的に-docx4j

于 2016-02-04T12:22:57.817 に答える
3

Apache POIを試しましたが、docxファイルから何かを印刷するときに問題が発生します(例:docxからすべての "Heading1"要素を印刷するには)、大量の不良データと空白が印刷されます。Docx4jはこの悪いデータを回避します、私はそれを試しました。

于 2015-03-15T08:54:12.917 に答える