web-dev-qa-db-ja.com

PDF Javaの生成ライブラリ

これは以前に尋ねられたことを知っていますが、どのPDF生成フレームワークを現在のプロジェクトに使用するかは未定です。

私の要件

  • PDFドキュメントのオンザフライ生成(主に注文フォーム、請求書)
  • Javaベース
  • レイアウトが簡単
  • オープンソースでなければなりません
  • レイアウト変更が簡単

多くの人がiTextを使用しているようですが、懸念の分離に関しては(ライセンスの変更を除いて)いくつかの懸念があります。HTMLコンテキストでは、MVCが適切にサポートされています。 FreeMarkerでロジックとレイアウトを分離します。 iTextを使用すると、コードとレイアウトが混ざってしまうのではないかと少し心配しています。

Apache FOPが解決策になる可能性があることは承知していますが、XSLTを使用するのは面倒であり、多くのドキュメントの巨大なスループットに関してはFOPが遅くなる可能性があります。

JasperReportsも検討しましたが、私の理解では、多くのレイアウトの書式設定を必要とする請求書などの単一のドキュメントではなく、表形式のデータセットを含むレポートに適していますか?

これについて何か考えはありますか?

41
Stefan Haberl

JasperReportsを試してみてください。 iReport を使用して、.jrxmlファイルを作成します。 JapserReportsは複雑なレイアウトを処理できます。さまざまなクエリに基づいたレポートのこれらの部分については、メインレポートに埋め込まれたサブレポートの使用をご覧ください。

@Adrian Smithのソリューションと同様に、このアプローチはレポートレイアウトの編集をデータソースから分離します。

21
Janek Bogucki

私のソフトウェアがフォーマットに依存しない「純粋な」XMLファイルを作成し、上司にXSDを渡し、彼がそれを Altova StyleVision に配置して、データに基づいてレポートをWYSIWYGできる良いソリューションを実装しました彼はXSDから抜き取ります。そのソフトウェアはXSLTを生成します。だから私のプログラム:

  • 形式に依存しない「純粋な」XMLを生成します
  • 出力をXML-FOであるXSLTで変換します
  • Apache FOP を使用して、XML-FOをPDFに変換します

これは本当に優れたソリューションです。つまり、上司がレポートの色を変更するたびにコードを変更する必要がなくなりました。私の仕事は「純粋な」XMLを作成することです。

更新:また、Tortoise SVNを使用してSVNリポジトリへのアクセスを上司に許可します。エラー。そのため、彼はXSLTファイルを直接SVNにチェックインし、作業を中断することなくビルド/デプロイを実行できます。明らかに、ワークフローは、間違いなどを犯さないほど十分に正確な人にのみ機能しますが、その場合はうまく機能します。

9
Adrian Smith

私の経験に基づいて、次のことを検討することをお勧めします Java PDF Libraries PDF

  1. DynamicReports
  2. Apache PDF Box
  3. iText PDF
  4. PDFピエロ

あなたの要件については、 DynamicReports が正しい選択だと思います。過去3年間、すべてのPDFレポート要件。非常に少ないコードで、真のダイナミックPDFを簡単に作成できます。DynamicreportsはJasper Reportのラッパーです。 。したがって、内部的にはJasperレポートを使用します。

5
Prasanna L M

Docmosis を使用すると、WordまたはOpenOfficeライターでテンプレートを作成できます-関心事をうまく分離し、レイアウトは最も使い慣れたツールになります。

2
Paul Jowett

一つの可能​​性は

  • 文書をPostScript形式で作成してから
  • ghostscript(ps2pdf)を使用してPDFに変換します
1
Curd

JODConverter をしばらく使用していましたが、本当に気に入っています。

JODReports を使用して、動的OpenOffice.orgドキュメント(内部的にFreeMarkerを使用)を生成します。次に、JODConverterを使用して、これらのドキュメントをPDFドキュメントに変換します。

多くの作業のように聞こえますが、実際はそうではありません。

1
Shervin Asgari