Le "formulaire XFA" a été imprimé sur la console après l'exécution des codes, mais pas les champs. Y a-t-il une raison particulière pour laquelle?Aucun champ n'a été imprimé sur la console après avoir vérifié si le formulaire utilise la technologie Acroform ou XFA?
Voici les codes:
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();
} }
avez-vous vérifié si 'fields' est vide? – assembler
Il semble que les champs sont remplis lors de l'exécution. Mais ne devrait-il pas encore imprimer le champ indépendamment du fait qu'il soit vide ou non? Vraiment nouveau pour Java et IText. –
bien sûr les 'fields' sont remplis à l'exécution, mais si' fields' est vide, il n'exécutera jamais la boucle et vous imprimez les clés de champ à l'intérieur de la boucle. – assembler