코드를 실행 한 후에 콘솔에 "XFA 양식"이 인쇄되었지만 필드는 인쇄되지 않았습니다. 특별한 이유가 있습니까?폼이 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