Pdf XFA缺少填充字段?
我使用pdfbox-1.8.12从PDF中读取内容以获取XFA。 我已经能够成功地为大多数文件获取XFA,而没有遗漏任何字段值 问题在于一些文件,如。我有许多字段没有像CIN这样的值,但当我在任何PDF查看器、foxit或Acrobat中打开文件时,它会显示该字段Pdf XFA缺少填充字段?,pdf,pdfbox,xfa,acrofields,Pdf,Pdfbox,Xfa,Acrofields,我使用pdfbox-1.8.12从PDF中读取内容以获取XFA。 我已经能够成功地为大多数文件获取XFA,而没有遗漏任何字段值 问题在于一些文件,如。我有许多字段没有像CIN这样的值,但当我在任何PDF查看器、foxit或Acrobat中打开文件时,它会显示该字段 public static byte[] getParsableXFAForm(File file) { if (file == null) return null; PDDocument do
public static byte[] getParsableXFAForm(File file) {
if (file == null)
return null;
PDDocument doc;
PDDocumentCatalog catalog;
PDAcroForm acroForm;
PDXFA xfa;
try {
doc = PDDocument.load(file);
catalog = doc.getDocumentCatalog();
acroForm = catalog.getAcroForm();
xfa = acroForm.getXFA();
byte[] xfaBytes = xfa.getBytes();
doc.close();
return xfaBytes;
} catch (IOException e) {
// handle IOException
// happens when the file is corrupt.
System.out.println("IOException");
return null;
}
}
然后字节[]被转换为字符串
是此文件的xfa,如果在其中搜索“U72300DL1996PLC075672”,则该文件将丢失
这是一个提供所有字段的文件
有什么想法吗?我什么都试过了,但我的猜测是,既然读者能看到这种价值,我也应该能看到
编辑:
您必须下载文件,但可能无法在浏览器中查看这些文件。表单中有多个XFA内容条目,表示表单在应用不同签名之前的不同状态。当您使用
PDDocument.load(文件)
PDF将按顺序解析,并且不会拾取最新的XFA内容。如果你改成
PDDocument.loadNonSeq(文件,空)
将使用外部参照信息,并提取包含您要查找的信息的最新XFA
请注意,对于PDFBox 1.8.x,应始终使用PDDocument.loadNonSeq
,以便根据规范解析PDF,即遵循外部参照信息PDDocument.load
应仅用于处理具有(外部参照相关)解析错误的文件,其中顺序解析可能是一种退步
对于PDFBox 2.x
PDDocument.load
将按照外部参照进行解析,如1.8中的“PDDocument.loadNonSeq”,并在后台进行顺序解析,以防出现错误。表单中有多个XFA内容条目,表示表单在应用不同签名之前的不同状态。当您使用
PDDocument.load(文件)
PDF将按顺序解析,并且不会拾取最新的XFA内容。如果你改成
PDDocument.loadNonSeq(文件,空)
将使用外部参照信息,并提取包含您要查找的信息的最新XFA
请注意,对于PDFBox 1.8.x,应始终使用PDDocument.loadNonSeq
,以便根据规范解析PDF,即遵循外部参照信息PDDocument.load
应仅用于处理具有(外部参照相关)解析错误的文件,其中顺序解析可能是一种退步
对于PDFBox 2.x
PDDocument.load,将按照外部参照进行解析,如1.8中的“PDDocument.loadNonSeq”,如果出现错误,将在后台进行顺序解析。。我已经尽了我所能,我认为这是错误的解析。我只是再次保存文件,然后对其进行解析。再次感谢!!干杯我对你感激不尽。我已经尽了我所能,我认为这是错误的解析。我只是再次保存文件,然后对其进行解析。再次感谢!!干杯