我有一个包含acrofields的pdf。当我对那些领域进行冲压并使这个pdf变平时,一切都运行良好。我得到了pdf,所有的acrofield都有适当的价值。问题是,当我打开这个标记文件时,Acrobat成功打开它,但是当我向下滚动到存在我的acrofields的6页时,它会显示错误弹出窗口,其中包含以下消息:
此页面上存在错误。 Acrobat可能无法正确显示页面。请与创建PDF文档的人员联系以解决此问题。
我还发送了pdfs的链接(pdf带有acrofields和盖章的pdf),发生了错误。
pdf file without filling acrofield
用于标记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进行标记(在程序中(在主方法中进行标记)和使用Web应用程序进行标记
2)使用itextpdf进行标记5.4.1(仅当在Web应用程序中运行标记流时才会出现错误消息。但如果我使用程序生成标记的pdf(使用main方法),则不会出现错误消息)。
请帮帮我。
答案 0 :(得分:1)
您开始使用的原始格式Form-I-9.pdf
是错误的,其中一个表单字段的外观内容流包含语法错误。但是,由于Adobe Reader用于在某些情况下从字段值重新创建现场外观,所以似乎并不关心。
当表单字段被展平时,该错误的外观内容流变为xobject内容流。 Reader无法再修复此语法错误(毕竟没有任何字段可以使用其值)。因此,您会收到错误消息。
问题本身位于第7页,而不是6(一旦Reader开始呈现第7页,它就会出现)。它是CountryOfIssuance[0]
中对象910中的字段Form-I-9.pdf
的外观流,它在展平的testFormI9.pdf
中成为对象43 0:
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 操作的参数。