112

表、グラフ、目次、テキストを含むWord文書を生成する必要がある新しいアプリがあります。これに使用するのに適したAPIは何ですか?グラフ、目次、および表をサポートしていることをどの程度確信していますか?それらを使用する上での隠された落とし穴は何ですか?

いくつかの説明:

  • PDFを出力できません。Word文書が必要です。
  • OpenOfficeではなくMSWord2003(または2007)を使用しています
  • アプリケーションは*nixapp-serverで実行されています

テンプレートドキュメントから始めて、いくつかのスペースに表やグラフなどを入力できれば便利です。

編集:以下のいくつかの良い答えは、私の現在の状況に関する限り、それぞれに独自の欠点があります。それらから「最終的な答え」を選ぶのは難しい。開いたままにして、より良いソリューションが作成されることを期待します。

編集:OpenOffice UNOプロジェクトは、私が求めていたものに最も近いようです。POIは確かにより主流ですが、私が望むものには未熟すぎます。

4

16 に答える 16

56

2007 年、私のプロジェクトは OpenOffice.org のUniversal Network Objects (UNO) インターフェイスを使用して、Java Web アプリケーション (Struts/JSP フレームワーク) から MS-Word 互換ドキュメント (*.doc) と対応する PDF ドキュメントをプログラムで生成することに成功しました。

OpenOffice UNO では、MS-Office 互換のチャート、スプレッドシート、プレゼンテーションなどを作成することもできます。チャートや表を含む洗練された Word ドキュメントを動的に作成することができました。

ソフトウェアがコンテンツを挿入するブックマーク挿入を備えたテンプレート MS-Word ドキュメントを使用してプロセスを簡素化しましたが、ドキュメントを完全にゼロから作成することもできます。目標は、最終的な配信とアーカイブ用に PDF に変換する前に、ソフトウェアでレポート ドキュメントを生成し、それをエンド ユーザーが共有してさらに微調整できるようにすることでした。

ユーザーに MS-Office の代わりに OpenOffice を使用してもらいたい場合は、オプションで OpenOffice 形式のドキュメントを作成できます。私たちの場合、ユーザーは MS-Office ツールを使用したいと考えています。

UNO は OpenOffice スイートに含まれています。Java アプリをスイート内の UNO 関連ライブラリにリンクしただけです。サンプル アプリケーションと UNO 開発者ガイドを含む OpenOffice ソフトウェア開発キット (SDK) が利用可能です

最新の OpenOffice UNO が MS-Office 2007 Open XML ドキュメント形式を生成できるかどうかは調査していません。

OpenOffice UNO に関する重要事項は次のとおりです。

  1. フリーウェアです
  2. 複数の言語 (Visual Basic、Java、C++ など) をサポートしています。
  3. プラットフォームに依存しません (Windows、Linux、Unix など)。

役立つ Web サイトをいくつか紹介します。

于 2008-11-02T16:05:55.173 に答える
30

ApachePOIがその仕事をすることができると思います。使用目的によっては、HWPFがまだ開発の初期段階にあることが原因で問題が発生する可能性があります。

HWPF は、Java(のみ)を使用してMicrosoft Word 97(-XP)ドキュメントを読み書きするためのAPIのセットです。

于 2008-10-14T23:17:05.230 に答える
9

これを使用できます: http://code.google.com/p/java2word

Java2Word という API を実装しました。数行のコードで、1 つの Microsoft Word ドキュメントを生成できます。

例えば。:

IDocument myDoc = new Document2004();
myDoc.getBody().addEle(new Heading1("Heading01"));
myDoc.getBody().addEle(new Paragraph("This is a paragraph...")

使い方の例がいくつかあります。基本的に、1 つの jar ファイルが必要です。設定方法についてさらに詳しい情報が必要な場合はお知らせください。

*これを書いたのは、プロジェクトで本当に必要なものが 1 つあったためです。私のブログの詳細:

http://leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html *

乾杯レオナルド

編集:リンク内のプロジェクトはhttps://github.com/leonardoanalista/java2wordに移動しました

于 2010-07-26T03:22:35.000 に答える
5

Aspose.Words for Java をお試しください。Java がインストールされているすべての OS で動作します。

MS Word 出力形式が必要な場合は、ドキュメントを DOC、DOCX、または RTF に出力します。すべてが等しく適切にサポートされています。

この API を使用すると、文字通りノードからドキュメントをゼロから作成し、それらの書式設定プロパティを設定できます。また、テーブル行の作成、フィールドの挿入など、より高いレベルのメソッドを提供する DocumentBuilder を使用することもできます。または、既存の作成済みドキュメント間で部分をコピー/結合/移動することもできます。たとえば、コントラクトを組み立てたい場合は、取得してコピーするだけです。複数のドキュメントの一部と Aspose.Words は、結果のドキュメントでスタイル、リストの書式設定などを適切にマージします。

Aspose.Words を使用して TOC フィールドを挿入することはできますが、本日より、ドキュメントを Microsoft Word で開いたときに TOC フィールドを更新する必要があります。ただし、2010 年初頭に TOC フィールドの完全サポートをリリースする予定です。たとえば、MS Word のように完全な TOC を構築します。

私は Aspose.Words チームに所属しています。

于 2009-12-21T21:59:55.357 に答える
4

Aspose.Words for Java をお試しください。

Aspose.Words for Java は、Java 用の高度な (商用) クラス ライブラリであり、Java アプリケーション内でさまざまなドキュメント処理タスクを直接実行できます。

Aspose.Words for Java は、DOC、OOXML、RTF、HTML、および OpenDocument 形式をサポートしています。Aspose.Words を使用すると、Microsoft Word を使用せずにドキュメントを生成、変更、および変換できます。

于 2008-12-08T10:57:50.297 に答える
3

Aspose.Wordsを使用して.NETでメールマージを実行しました。Java版もあると思います。

于 2008-10-14T23:26:46.753 に答える
2

JACOBのようなJavaCOMブリッジを使用できます。クライアント側からの場合、別のオプションはJavascriptを使用することです。

于 2008-10-14T23:17:21.500 に答える
2

オープン オフィスに接続してファイル フォーマット コンバーターを公開する JODConverter というツールがあります。投稿先の webapp (tomcat にある) として利用できるバージョンと、コマンド ライン ツールがあります。私はそれでhtmlを発射し、.docとpdfに正常に変換しました。これはかなり大きなプロジェクトにあり、まだ稼働していませんが、使用する予定です。 http://sourceforge.net/projects/jodconverter/

于 2009-02-09T19:11:34.127 に答える
1

私は過去に純粋なXMLベースのワードファイルを開発しました。.NETを使用しましたが、実際にはXMLであるため、言語は重要ではありません。これは最も簡単なことではありませんでした(数年前にそれを必要としたプロジェクトがありました)。これらはWord 2007以降でのみ機能しますが、必要なのは各タグの機能を説明するMicrosoftのホワイトペーパーだけです。Wordを使用している場合と同じように、タグを使用して必要なすべてを実行できます(もちろん、最初はもう少し面倒です)。

于 2008-10-14T23:27:33.290 に答える
1

docx4jまたは poi (どちらも ASL v2)

@wondersofcomputing: iText は実際には無料でオープンソースです

于 2009-03-27T02:52:58.553 に答える
1

iTextは本当に使いやすいです。

コマンド ラインからabiword (無料の軽量マルチ OS テキスト プロセッサ) を呼び出すことができる doc ファイルが必要な場合は、いくつかの変換形式変換オプションがあります。

于 2009-05-04T16:06:20.343 に答える
1

もう少し調査した結果、PDF および RTF ファイル作成 API である iText に出会いました。RTF 生成を使用して、Doc を使用して編集し、再保存できる Doc 読み取り可能なファイルを作成できると思います。

この方法で使用される iText の経験はありますか?

Bill さん、POI と iText API は、プログラミングの観点からは非常に似ています。私は過去に両方を使用してきましたが、どちらも使いやすく、よく文書化されていることがわかりました。

iText を使用すると、コードを少し変更するだけで形式 (RTF と PDF) を切り替えることができるという利点が得られます。私の記憶が正しければ、コンテンツは同じ呼び出しを使用してレイアウトされ、数行のコードを使用して PDF または RTF として設定されます。

ただし、RTF のフォーマットは DOC に比べて限られていると思います。探している高度な機能 (テーブル、インライン画像) をかなりの手間をかけずに実装できるかどうかはわかりません。

あなたのニーズに十分な機能を持っていない HWPF についてあなたが言ったことを考えると (私は POI の Excel 側のみを扱ってきました)、最善の策は、PDF がその仕事に最適な技術であるという力を納得させることかもしれません

于 2009-05-04T16:24:20.843 に答える
0

これはWebアプリであるため、さらに別の可能性があります。

MIMEタイプが「application/msword」に設定されたHTMLページをレンダリングできたため、ブラウザーはHTMLを正常にインポートするWordを生成し、実際のWordドキュメントを出力する場合と同じように編集と保存を行うことができました。

テーブルは正常に機能しますが、まだ機能していない画像です。HTMLのタグのように簡単な場合もあれば、画像データをバイナリで含む応答の別の部分をストリーミングする必要がある場合もあります。または、まだ思い付いていない他の方法もあります。:)

于 2008-10-15T22:20:31.457 に答える
0

これはリクエストよりもかなり遅れていますが、他の人を助けるかもしれません. Docmosisは、ドキュメントをテンプレートとして使用して doc、pdf、odt 形式でドキュメントを作成するための Java API を提供します。フォーマット変換を実行するエンジンとして OpenOffice を使用します。ドキュメントの操作と入力は、Docmosis 自体によって実行されます。

于 2010-05-16T03:40:21.067 に答える
-1

もう少し調査した結果、PDF および RTF ファイル作成 API であるiTextに出会いました。RTF 生成を使用して、Doc を使用して編集し、再保存できる Doc 読み取り可能なファイルを作成できると思います。

この方法で使用される iText の経験はありますか?

于 2008-10-15T01:21:08.550 に答える