Java iText动态向PDF封面中的占位符添加值

Java iText动态向PDF封面中的占位符添加值,java,pdf,pdf-generation,itext,Java,Pdf,Pdf Generation,Itext,我有下面的封面。我需要为被许可方、日期添加值,并在框中填入另一个给定文本。如何使用iText实现这一点。非常感谢您的帮助。首先,您需要创建一个表单,作为所有许可证文档的模板。的第5.3.5节(可免费下载的章节)解释了如何使用OpenOffice创建这样的表单,但有许多替代方法。我使用Adobe Acrobat创建了这样一个表单: 我高亮显示了这些字段,以便您可以看到我添加它们的位置。有四种: 课程:14pt Helvetica中的课程名称,居中对齐 姓名:Helvetica中的学生姓名,左对

我有下面的封面。我需要为被许可方日期添加值,并在框中填入另一个给定文本。如何使用iText实现这一点。非常感谢您的帮助。

首先,您需要创建一个表单,作为所有许可证文档的模板。的第5.3.5节(可免费下载的章节)解释了如何使用OpenOffice创建这样的表单,但有许多替代方法。我使用Adobe Acrobat创建了这样一个表单:

我高亮显示了这些字段,以便您可以看到我添加它们的位置。有四种:

  • 课程:14pt Helvetica中的课程名称,居中对齐
  • 姓名:Helvetica中的学生姓名,左对齐
  • 日期:Helvetica课程的日期,左对齐
  • 课程描述:Helvetica中的学生姓名,左对齐,多行标记在左侧
现在我可以轻松地填写表格(请参阅):

生成的PDF如下所示:


如您所见,代码非常简单。对于那些花时间阅读文档的人来说,所有这些都有很好的文档记录。也许你也可以看看标题为的部分。

非常感谢。这正是我想要做的
public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    AcroFields form = stamper.getAcroFields();
    form.setField("course", "Copying and Pasting from StackOverflow");
    form.setField("name", "Some dude on StackOverflow");
    form.setField("date", "April 10, 2016");
    form.setField("description",
        "In this course, people consistently ignore the existing documentation completely. "
        + "They are encouraged to do no effort whatsoever, but instead post their questions "
        + "on StackOverflow. It would be a mistake to refer to people completing this course "
        + "as developers. A better designation for them would be copy/paste artist. "
        + "Only in very rare cases do these people know what they are actually doing. "
        + "Not a single student has ever learned anything substantial during this course.");
    stamper.setFormFlattening(true);
    stamper.close();
}