我正在开发一个可以计算智商的Java Web App。我希望应用程序最后有一个选项获取您的证书。我希望使用预先输入的用户名和他的智商分数自动生成PDF文件(赞赏证书)。
如何实现这一目标?我已经在一些提供认证的网站上看到过这种类型的功能..
答案 0 :(得分:1)
Java PDF API
控制流程
答案 1 :(得分:0)
看看一些iText samples。您可以填写a form,然后点击“展平”,您就会看到包含所用数据的PDF。当您谈论证书时,最简单的解决方案是使用AcroForm技术创建PDF模板。例如:state.pdf是我刚刚提到的示例中使用的交互式PDF。
可以找到用于填写和展平此表单的代码here。有关更多示例,请阅读Chapter 6 of my book "iText in Action"(该章节免费提供;您需要第6.3.5节)。我还写了一篇关于在Web应用程序中集成这样的代码的完整章节。您可以找到本章here附带的示例。
基本上,你需要做这样的事情:
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream(dest));
AcroFields fields = stamper.getAcroFields();
fields.setField("name", "CALIFORNIA");
fields.setField("abbr", "CA");
fields.setField("capital", "Sacramento");
fields.setField("city", "Los Angeles");
fields.setField("population", "36,961,664");
fields.setField("surface", "163,707");
fields.setField("timezone1", "PT (UTC-8)");
fields.setField("timezone2", "-");
fields.setField("dst", "YES");
stamper.setFormFlattening(true);
stamper.close();
reader.close();
关于输入数据的警告:这个简单示例使用了一种不知道如何显示特殊字符的非常基本的字体。如果你需要ñ,é,à等字符......你需要引入一个字形更多的字体。
关于您使用的jsp - 标记的警告:我写了这个helloworld.jsp,结果为this PDF,证明可以生成PDF来自JSP。然而,这样做是个坏主意。当您学习如何编写JSP时,您的老师可能会告诉您JSP不应该用于创建二进制文件。 (如果他没有告诉你这个,他要么忘记了,要么他不是一个好老师。)因为使用JSP创建二进制文件时存在很多陷阱,并且因为JSP文件最终被编译为Servlet,所以应该忘记创建一个JSP来创建一个PDF并且更喜欢编写一个Servlet。它将为您节省大量时间,并且您的代码将更易于维护(对JSP文件的最轻微更改可能会破坏代码)。