運行代碼後在控制檯上打印了「XFA Form」,但沒有打印字段。有什麼特別的原因嗎?驗證表單是否使用Acroform或XFA技術後,控制檯上未打印任何字段?
這裏是代碼:
public class VerifyPDFForm {
public static void main(String[] args) throws IOException {
String SRC = "c:/Temp/testCopy.pdf";
String DEST = "c:/Temp/test10.txt";
PrintStream out = new PrintStream(new FileOutputStream(DEST));
PdfReader reader = new PdfReader(SRC);
AcroFields form = reader.getAcroFields();
XfaForm xfa = form.getXfa();
System.out.println(xfa.isXfaPresent() ? "XFA form" : "AcroForm");
Set<String> fields = form.getFields().keySet();
for (String key : fields) {
System.out.println(key);
}
System.out.flush();
System.out.close();
reader.close();
} }
你是否檢查'fields'是否爲空? – assembler
它看起來像在運行時填充字段。但是,不管它是否爲空,它是否仍然打印該字段?對Java和IText真的很陌生。 –
當然在運行時會填充'fields',但如果'fields'爲空,它將永遠不會執行循環,並且您正在循環內打印字段鍵。 – assembler