Ich verwende pdfbox-1.8.12, um Inhalte aus PDF zu lesen, um XFA zu erhalten. Ich konnte XFA für die meisten Dateien erfolgreich erhalten, ohne irgendwelche Feldwerte zu verpassen.XFA fehlen gefüllte Felder?
Das Problem ist mit einigen Dateien wie error.pdf. Ich habe viele der Felder, die keine Werte wie CIN haben, aber wenn ich die Akte in irgendeinem PDF-Zuschauer, Foxit oder Acrobat öffne, zeigt es dieses Feld an.
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;
}
}
Dann wird das Byte [] in String konvertiert.
This ist das xfa für diese Datei und wenn Sie in diesem nach 'U72300DL1996PLC075672' suchen, würde es fehlen.
Dies ist eine Datei, die alle Felder enthält.
Irgendwelche Ideen? Ich habe alles versucht, aber meine Vermutung ist, dass, da die Leser diesen Wert sehen können, ich auch in der Lage sein sollte.
EDIT: Sie müssen die Dateien herunterladen, Sie können sie möglicherweise nicht im Browser anzeigen.
Ich kann Ihnen nicht genug danken. Ich hatte alles versucht, was ich konnte, ich dachte, das wäre der Fehler beim Parsen. Ich habe stattdessen die Datei erneut gespeichert und dann analysiert. Danke noch einmal!! Prost!! – Mayank