我有一个基于Java / Java EE应用程序,其中我有一个要求,以创建将被提供给用户各种服务PDF证书。 我正在寻找一种方法来创建PDF(无需数字证书现在)。
什么是这样做的最简单,最方便的方法是什么? 我试过了
- XSL转换为PDF
- 利用iText HTML转换为PDF。
- 粗的java方式(使用PDFWriter,PdfPCell等)
什么是最好的出路,这些或者是有哪些是比较容易和方便的任何其他方式?
我有一个基于Java / Java EE应用程序,其中我有一个要求,以创建将被提供给用户各种服务PDF证书。 我正在寻找一种方法来创建PDF(无需数字证书现在)。
什么是这样做的最简单,最方便的方法是什么? 我试过了
什么是最好的出路,这些或者是有哪些是比较容易和方便的任何其他方式?
当你谈论证书,我认为认准证书的每一个接收相同的,除了标准片:
如果是这样的话,我会用任何工具,它允许你创建一个奇特的证书(Acrobat中,开放式办公,Adobe InDesign中,...),并创建一个静态的形式(有时被称为AcroForm)包含三个字段:姓名当然,日期。
然后我会用iText的填写这样的字段:
PdfReader reader = new PdfReader(pathToCertificateTemplate);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(pathToCertificate));
AcroFields form = stamper.getAcroFields();
form.setField("name", name);
form.setField("course", course);
form.setField("date", date);
stamper.setFormFlattening(true);
stamper.close();
reader.close();
从代码中创建这样一个证书是“辛苦”; 从XML创建这样一个证书是“痛”(因为XML不能很好地适合于定义布局),从(HTML + CSS)创建的证书是可能的iText的XML工人,但所有这些解决方案具有的缺点它的辛勤工作的每一项正确定位,以确保一切都在同一页上配合,等等。
这是很容易保持与固定字段的模板。 这样,你只需要编写一次。 如果由于某种原因,你要移动领域到另一个地方,你只需要改变模板,你不必担心代码,XML,HTML和CSS瞎搞。
见http://www.manning.com/lowagie2/samplechapter6.pdf更多的一些信息(第6.3.5节)。
尝试使用Jasper报表的伴侣。 瞧瞧吧http://community.jaspersoft.com/
我推荐的第一种方法:XSL转换为PDF,这是最强大的。 我有经验,优雅地通过使用产生大量的PDF报告(每个有成千上万的网页) 的Apache FOP ,我认为这是不够好,相当容易(但需要有一定的了解XSL-FO )。
虽然,这是老问题,我觉得应该是anwered。
要创建非常复杂的PDF如证书,报告或付款单等,您绝对可以使用动态报告库。 这个库是依赖于碧玉报告(这也是非常受欢迎的老库)。 动态报告会为您提供设计使用Java代码的文件,这样就可以轻松地操纵或根据需要进行更改。
有很多他们的网站上提供有而且很容易从这些例子来学习的例子。
下面是链接吧:
http://www.dynamicreports.org/
使用iText的PDF库,用于创建PDF的这将是您轻松地生成从该API的PDF文件。 链接在这里
http://itextpdf.com/
文本®是一个库,允许你创建和操纵的PDF文档。 它使开发人员希望加强与动态PDF文档生成和/或操纵Web和其他应用程序。
开发人员可以使用的iText到:
即成PDF的浏览器
生成XML文件或数据库动态文档
使用PDF的诸多互动功能
添加书签,页码,水印等
斯普利特,串联和处理PDF页面
自动填写的PDF表单
数字签名添加到PDF文件
你提到的PDF文件可能会很复杂。 如果这是做变性或布局,一个选项,提供合理的复杂的基于模板的布局和控制是Docmosis 。 您提供Docmosis与DOC或ODT文件作为模板,所以他们很容易改变和呼叫Docmosis到邮件合并创建PDF或其他格式。 请不是我的创建Docmosis公司工作。
希望帮助。