"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