2011-06-07 66 views
1

我有一个要求,即在用户付款并将其附加到电子邮件并发送到我的Java Web应用程序后生成(动态)PDF。在Java Web应用程序中生成PDF

我想利用iText,但我真的不喜欢的所有格式和布局如何被混在PDF的内容,按照这个链接的例子:http://www.coderanch.com/how-to/java/ItextExample

的原因我不不喜欢它被混合在一起是因为我们的用户界面的人不会轻松触摸这个Java代码。

我还有其他选择吗?我真的不想用所需的数据生成XML文件,然后必须对其进行转换,所以我认为XSL-FO可能会失效。

+0

这个例子真的很老。看看http://www.itextpdf.com/examples – Redlab 2011-06-07 10:49:12

+0

啊下面有一个更新的例子,没有看到第一个。 – Redlab 2011-06-07 11:02:55

回答

1

我已经在几个项目上使用了Jasper Reports,当它编译报告时它工作得很好,速度也非常快。用于创建报告的用户界面并不算太差,但您需要对数据模型有所了解。你可以通过在你想要的任何数据源,包括XML文件或一个简单的HashMap填入您的数据:

http://jasperforge.org/website/jasperreportswebsite/trunk/documentation.html?header=project&target=jasperreports

File myJasperFile // reference to compiled Jasper file 
JRExporter exp = new JRPdfExporter() 
ByteArrayOutputSream b; 
JasperPrint p = JasperFillManager.fillReport(...) 
exp.setParameter(JRExporterParameter.OUTPUT_STREAM, b) 
exp.setParameter(JRExporterParameter.JASPER_PRINT, p) 
exp.exportReport() // b now contains the PDF binary 
+0

您使用过JasperReports吗?然后你也使用iText;)JasperReports用iText做它。 – Redlab 2011-06-07 10:48:28

+0

是的,我已经使用了很多使用iText的库,也使用了iText独立版,并不建议创建报告。在它上面使用报告库要容易得多。 – 2011-06-07 15:42:19

0

有许多的HTML的>浮动的PDF选项(包括iText)。您可以从您的UI人创建的模板生成HTML,并将其转换为PDF。不重要的。

如果您的HTML获得所有幻想和scriptified,iText(和大多数其他转换器)将无法正确处理它。对于先进的东西,你需要WKHTML2PDF,这是一个基于webkit的应用程序,写入PDF而不是屏幕。它是光滑的(并且在重量方面有点)。 iText会更有效率。