0

我有一个包含 acrofields 的 pdf。当我对这些字段进行标记并将此 pdf 展平时,一切正常。我得到了pdf,所有的acrofields都有适当的价值。问题是当我打开这个标记文件时,Acrobat 成功打开它,但是当我向下滚动到我的 acrofields 所在的第 6 页时,它显示错误弹出窗口,并带有以下消息:

此页面存在错误。Acrobat 可能无法正确显示页面。请联系创建 PDF 文档的人员以更正此问题。

我还发送了发生错误的 pdf(带有 acrofields 和加盖 pdf 的 pdf)的链接。

pdf文件不填写acrofield

盖章的pdf文件

用于标记pdf文件的代码:-

`

PdfReader reader = new PdfReader(location1);
Integer i=0;
PdfStamper stamper = new PdfStamper(reader,new FileOutputStream(location2));
AcroFields form2 = stamper.getAcroFields();
Set<String> fields2 = new HashSet(form2.getFields().keySet());
for(String s1 : fields2)
{
   i = i+1;
   form2.setField(s1, i.toString());
}
stamper.setFormFlattening(true);
stamper.close();`

出现此错误的情况:1)使用 itext 2.0.8 进行标记(在程序中(在 main 方法中进行标记)和 Web 应用程序)

2) 使用 itextpdf 5.4.1 进行标记(仅当标记流程在 Web 应用程序中运行时才会出现错误消息。但如果我使用程序(使用 main 方法)生成标记的 pdf,则不会出现错误消息)。

请帮帮我。

4

1 回答 1

1

您开始的原始表单Form-I-9.pdf已经是错误的,其中一个表单字段的外观内容流包含语法错误。但由于 Adob​​e Reader 用于在某些情况下根据字段值重新创建字段外观,它似乎并不在意。

当表单字段被展平时,这个错误的外观内容流变成了 xobject 内容流。阅读器不再知道如何修复此语法错误(毕竟没有字段可以使用其值)。因此,您会收到错误消息。

问题本身位于第 7 页,而不是第 6 页(一旦阅读器开始呈现第 7 页,它就会出现)。它是CountryOfIssuance[0]对象 91 0 中字段的外观流,Form-I-9.pdf其中变成了 flattened 中的对象 43 0 testFormI9.pdf

q
1 1 273.543 13.12 re
W
n
BT
/CourierNewPSMT 10 Tf
2 5.8549 Td
17.01 TL
 Tj
ET
Q

如您所见,缺少Tj操作的参数。

于 2014-03-14T14:01:09.187 回答