如果時間是最重要的(如通常情況下,當你的老闆給了你的東西),我會建議您檢查出iText的(主要站點是here)。學習非常非常簡單(您可以在20分鐘內完成它,運行並生成簡單的「Hello,PDF!」示例),並且可以將幾乎任何內容導出爲PDF:表格,列表,圖表,圖片,超文本等。
JasperReports實施JRBeanCollectionDataSource
是我自己承認的,它是一種更優雅,靈活,永久的解決方案。但是如果你需要一個快速的n-dirty庫來生成PDF文件,和即將到來的截止日期已經接近尾聲,我會下載iText JAR並在其中進行下載。
該網站載有實際的代碼示例,幾乎任何你想完成。
與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();
即使這不是你要找的,不惜一切代價我會推薦你轉向明確的Apache PdfBox。在我看來,這是純粹的邪惡,只會打破你的心。
希望這會有所幫助,祝您好運!
您是否在尋找與Java + Hibernate和Spring結合使用的替代方案? –
DynamicJasper API是JasperReports API的「包裝器」API –
關於iReport性能,最近的4.1.x和4版本中存在某種錯誤。5版本。查看此論壇帖子瞭解更多信息:http://jasperforge.org/plugins/espforum/view.php?group_id=83&forumid=101&topicid=94781#95291。刪除/重置類路徑將iReport的性能提高了一個數量級。 – kaliatech