我使用pdfbox-1.8.12从PDF阅读内容以获得XFA。 我已经能够成功获得大部分文件的XFA,而不会错过任何字段值。XFA缺少填充字段?
麻烦的是一些文件,如error.pdf。我有许多没有像CIN这样的值的字段,但是当我在任何PDF查看器,foxit或Acrobat中打开文件时,它会显示该字段。
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;
}
}
然后将byte []转换为String。
This是这个文件的xfa,如果你在这里搜索'U72300DL1996PLC075672',它将会丢失。
这是一个normal文件,它提供了所有的字段。
任何想法?我已经尝试了一切,但我的猜测是,由于读者可以看到这个价值,我应该也能够做到。
编辑: 你将不得不下载这些文件,你可能无法在浏览器中查看它们。
我不能够感谢你。我曾尝试过所有可能的事情,我认为这是解析错误。我反而保存该文件,然后解析它。再次感谢!!干杯!! – Mayank