使用Java创建复杂的PDF(Creating complex pdf using java)

2019-07-17 20:14发布

我有一个基于Java / Java EE应用程序,其中我有一个要求,以创建将被提供给用户各种服务PDF证书。 我正在寻找一种方法来创建PDF(无需数字证书现在)。

什么是这样做的最简单,最方便的方法是什么? 我试过了

  1. XSL转换为PDF
  2. 利用iText HTML转换为PDF。
  3. 粗的java方式(使用PDFWriter,PdfPCell等)

什么是最好的出路,这些或者是有哪些是比较容易和方便的任何其他方式?

Answer 1:

当你谈论证书,我认为认准证书的每一个接收相同的,除了标准片:

  • 接收器的名称
  • 这是随后由接收器的过程中
  • 一个约会

如果是这样的话,我会用任何工具,它允许你创建一个奇特的证书(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节)。



Answer 2:

尝试使用Jasper报表的伴侣。 瞧瞧吧http://community.jaspersoft.com/



Answer 3:

我推荐的第一种方法:XSL转换为PDF,这是最强大的。 我有经验,优雅地通过使用产生大量的PDF报告(每个有成千上万的网页) 的Apache FOP ,我认为这是不够好,相当容易(但需要有一定的了解XSL-FO )。



Answer 4:

虽然,这是老问题,我觉得应该是anwered。

要创建非常复杂的PDF如证书,报告或付款单等,您绝对可以使用动态报告库。 这个库是依赖于碧玉报告(这也是非常受欢迎的老库)。 动态报告会为您提供设计使用Java代码的文件,这样就可以轻松地操纵或根据需要进行更改。

有很多他们的网站上提供有而且很容易从这些例子来学习的例子。

下面是链接吧:

http://www.dynamicreports.org/



Answer 5:

使用iText的PDF库,用于创建PDF的这将是您轻松地生成从该API的PDF文件。 链接在这里

http://itextpdf.com/

文本®是一个库,允许你创建和操纵的PDF文档。 它使开发人员希望加强与动态PDF文档生成和/或操纵Web和其他应用程序。

开发人员可以使用的iText到:

即成PDF的浏览器

生成XML文件或数据库动态文档

使用PDF的诸多互动功能

添加书签,页码,水印等

斯普利特,串联和处理PDF页面

自动填写的PDF表单

数字签名添加到PDF文件



Answer 6:

你提到的PDF文件可能会很复杂。 如果这是做变性或布局,一个选项,提供合理的复杂的基于模板的布局和控制是Docmosis 。 您提供Docmosis与DOC或ODT文件作为模板,所以他们很容易改变和呼叫Docmosis到邮件合并创建PDF或其他格式。 请不是我的创建Docmosis公司工作。

希望帮助。



文章来源: Creating complex pdf using java