50

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

私の要件

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

多くの人がiTextを使用しているようですが、関心の分離に関して(ライセンスの変更は別として)いくつかの懸念があります。HTMLコンテキストでは、ロジックとレイアウトを分離するために通常SpringMVCとFreeMarkerに固執する優れたMVCサポートがあります。iTextを使用すると、コードとレイアウトが頻繁に混在してしまうのではないかと少し心配しています。

ここでApacheFOPが解決策になる可能性があることは承知していますが、XSLTを操作するのは面倒で、多くのドキュメントが大量に発生する場合、FOPが遅くなる可能性があることを読みました。

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

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

4

6 に答える 6

22

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

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

于 2010-10-21T09:47:31.297 に答える
9

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

  • フォーマットに依存しない「純粋な」XMLを生成します
  • XSLTで変換します。XSLTの出力はXML-FOです。
  • ApacheFOPを使用してXML-FOをPDFに変換します

これは本当に素晴らしいソリューションです。つまり、上司がレポートの色を変更するたびに(プログラマーとして)コードを変更する必要がなくなり、私の仕事は単に「純粋な」XMLを作成することです。

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

于 2010-10-21T09:44:29.150 に答える
7

私の経験に基づいて、PDFレポートを作成するためにJavaPDFライブラリに従うことを検討することをお勧めします。

  1. DynamicReports
  2. ApachePDFボックス
  3. iText PDF
  4. PDFピエロ

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

于 2016-12-29T09:35:52.040 に答える
2

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

于 2010-10-29T13:34:17.500 に答える
1

私はしばらくの間JODConverterを使用していて、本当に気に入っています。

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

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

于 2010-10-21T09:45:55.013 に答える
1

1つの可能性は

  • PostScript形式でドキュメントを作成してから
  • ghostscript(ps2pdf)を使用してPDFに変換します
于 2010-10-21T09:49:44.927 に答える