当前位置: 首页 > 知识库问答 >
问题:

使用iText向PDF表单添加默认值的文本字段

戚明朗
2023-03-14

我们有一个包含现有字段的PDF表单,我们正在尝试使用默认值向表单添加新字段,但没有成功。基本上,我们正在做以下工作:

        PdfReader reader = new PdfReader(new FileInputStream(new File("C:\\Temp\\577979.pdf")));
        PdfStamper stamper = new PdfStamper(reader, (new FileOutputStream(new File("C:\\Temp\\577979-out.pdf"))));
        AcroFields form = stamper.getAcroFields();

        // Let's add value to an existing field
        form.setField("idCustomer", "My customer!!!");

        // Let's add a new field
        TextField idDocTrackTypeField = new TextField(stamper.getWriter(), new Rectangle(150, 740, 180, 790), "idDocTrackType");
        PdfFormField field1 = idDocTrackTypeField.getTextField();

        // First attempt to set the value (before adding it)
        field1.setValueAsString("idDocTrackTypeValue1");

        // Let's add it
        stamper.addAnnotation(field1, 1);

        // Second attempt to set the value (after adding it)
        field1.setValueAsString("idDocTrackTypeValue2");

        // Third attempt to set the value
        form.setField("idDocTrackType", "idDocTrackTypeValue3")

字段idClient使用新值更新,但新字段idDocTrackType没有内容。我做错了什么?

共有1个答案

钦高峯
2023-03-14

请添加额外的行来设置文本:

TextField idDocTrackTypeField = new TextField(stamper.getWriter(),
    new Rectangle(150, 740, 180, 790), "idDocTrackType");
idDocTrackTypeField.setText("default text");
PdfFormField field1 = idDocTrackTypeField.getTextField();
 类似资料:
  • 我有一个带有签名字节的数组和一个带有ocsp字节的数组,用于将ltv信息添加到我的pdf中。该签名是时间戳签名。现在,我尝试将这些信息添加到一个pdf文件中,该文件可用于 ... 好的,这样行。但在签名中,我必须设置标志认证级别1(不允许更改),我的应用程序将无法工作。因为添加LTV后,我更改了文档。我尝试创建自己的DSS字典并将其添加到文档中,但失败了。有谁能帮忙吗?提前谢谢

  • 我正在使用iText生成Pdf。但当我试图在pdf中添加图像时, 我mage.get实例(新的URL(timetableResource.getImageUrl()));document.add(学校标志); 但我得到的错误是 HTTP状态500-服务器为URL返回了HTTP响应代码400:http://139.59.72.150:8080/sms/attachments/23/42/school

  • 我使用Adobe acrobat reader编辑PDF,在我看到的地方,每个字段都有一个position属性,表示PDF字段在表单中的位置。 所以我的问题是,我能读到那个值吗? 现在我用下面的代码检索表单字段:

  • 我正在尝试从Android中的一个遗留应用程序打开一个标准的PDF表单,使用iText覆盖表单字段,并传递到Android上的Adobe Reader来填写表单。 我已经能够手动创建文本字段,但我更希望有一个pdf文件作为模板,以加快过程和更好地控制质量。 这是我到目前为止的代码,遵循itext的例子。 我遇到的问题在最后一行。cb.addTemplate(第0,0页); Eclipse报告以下错

  • 我创建了一个名为person的表,并使用liquibase变更集添加了一列“phone_number”。但现在我想为它添加一个默认值。但它不起作用,到目前为止,我已经尝试过: 和 和 有人能指出我哪里做错了,并且添加默认值会给以前添加的行增加值吗?

  • 问题内容: 我正在尝试根据以下代码在使用itext的表格单元格中添加一些带有条形码的文本,但它不会显示在pdf文件中。我尝试添加块和段落。任何帮助,将不胜感激。 问题答案: 您可能对 文本 模式与 复合 模式感到困惑。 使用构造函数时,可以在 文本 模式下创建一个单元格。随后,对的任何后续调用都会将单元格切换到 复合 模式,从而删除先前在构造函数中输入的所有内容。 您必须以这种方式更改代码: