我使用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