ある日、上司から、WebアプリケーションからPDF形式の請求書が欲しいと言われました。誰もがJasperReportsとiReportを設計に使用していることを考えて、私はそれを試しました。私のWebアプリはJava + HibernateとSpringに基づいています。当初、Jasperは問題なく、iReportも問題ないようでした。とにかく私は2つのことによって止められました:
DynamicJasperを見たことがありますが、それを使ってレポートをデザインできないようです。どう思いますか?使いやすい代替手段はありますか?
時間が重要な場合(上司から何かが渡される場合によくあることですが)、チェックアウトすることをお勧めしますiText(メインサイトは ここ )。
習得は非常に簡単で(20分で簡単な「Hello、PDF!」の例を起動、実行、生成できます)、テーブル、リスト、チャート、画像、ハイパーテキストなど、ほぼすべてのものをPDFにエクスポートできます。等.
私自身の承認により、そのJRBeanCollectionDataSource
を実装するJasperReportsは、よりエレガントで、柔軟性があり、永続的なソリューションです。しかし、PDFを作成するためだけにquick-n-dirtyライブラリが必要な場合は、and迫り来る締め切りが迫っています。私は、iTextJARをダウンロードして用意します。
このサイトには、達成したいほぼすべての実用的なコード例がロードされています。
JasperReportsとは異なり、iTextはレポートジェネレーターではありません。それはただのPDFジェネレーター(あなたの質問で私が言えることから、音あなたが必要とするすべてのように)。したがって、特定のBeanについては、 PDF請求書にエクスポートするプロパティを選択し、Chunk
、Paragraph
などのクラスを使用して、必要に応じてそれらをドキュメントに追加します。
// Your POJO/Bean/VO
Employee oEmp = new Employee();
Document oInvoicePdf = new Document();
PdfWriter.getInstance(document, new FileOutputStream("/invoices/2011/Invoice201.pdf"));
document.open();
document.add(new Chunk("Employee's name is : " + oEmp.getName()));
document.close();
これがあなたが探しているものではない場合でも、すべてのコストで私はあなたにApachePdfBoxのsteerclearをお勧めします。私の謙虚な意見では、それは純粋な悪であり、あなたの心を壊すだけです。
これがお役に立てば幸いです。
IReportの代わりに、JasperReports用のJasperWaveデザイナーを試すことができます。 2番目の問題に対処するために、ヘルパーを記述しないのはなぜですかJava Bean構造をレポート構造に変換するコード?いずれにせよ、マップするのは常に簡単ではありませんJavaある種のフラット構造へのオブジェクト。基礎となるBean構造の複雑さを隠すJavaインターフェースを作成します。2番目の問題が代替のレポートソリューションを探す理由であるかどうかはわかりません。