Extraire des données d'AcroForm à l'aide de Java
Extraire tous les champs du formulaire
Utilisez com.aspose.pdf.facades.Form pour lire les noms et les valeurs des champs sans passer par le modèle objet complet du document.
-
Ouvrez le formulaire PDF source avec la façade
Formafin que les champs AcroForm puissent être lus sans parcourir le modèle objet complet du document. -
Appelez
getFieldNames()pour collecter tous les identifiants de champs présents dans le formulaire. -
Parcourez ces noms de champs et appelez
getField(fieldName)pour lire chaque valeur de champ. -
Créez la chaîne de sortie à partir des paires clé-valeur extraites et affichez les données agrégées du formulaire.
-
Fermez la façade
Formdans le blocfinally.
public static void extractFormFields(Path inputFile) {
Form form = new Form(inputFile.toString());
try {
StringBuilder formValues = new StringBuilder("{");
String[] fieldNames = form.getFieldNames();
for (int i = 0; i < fieldNames.length; i++) {
if (i > 0) {
formValues.append(", ");
}
formValues.append(fieldNames[i]).append("=").append(form.getField(fieldNames[i]));
}
formValues.append("}");
System.out.println(formValues);
} finally {
form.close();
}
}
Récupérer une valeur de champ par nom
-
Ouvrez le formulaire PDF source avec la façade
Form. -
Appelez
getField(fieldName)avec le nom du champ demandé pour lire sa valeur actuelle à partir des données AcroForm. -
Affichez la valeur du champ extraite.
-
Fermez la façade
Formdans le blocfinally.
public static void extractFormFieldByTitle(Path inputFile, String fieldName) {
Form form = new Form(inputFile.toString());
try {
String formValue = form.getField(fieldName);
System.out.println(formValue);
} finally {
form.close();
}
}
Exporter les champs du formulaire vers JSON
-
Ouvrez le formulaire PDF source avec la façade
Form. -
Appelez
getFieldNames()pour collecter tous les identifiants de champs disponibles dans l’AcroForm. -
Parcourez ces champs, échappez les noms et les valeurs et créez une chaîne représentant un objet JSON.
-
Écrivez le résultat JSON dans le fichier de sortie.
-
Fermez la façade
Formdans le blocfinally.
public static void extractFormFieldsJson(Path inputFile, Path outputFile) throws Exception {
Form form = new Form(inputFile.toString());
try {
StringBuilder json = new StringBuilder();
json.append("{\n");
String[] fieldNames = form.getFieldNames();
for (int i = 0; i < fieldNames.length; i++) {
String fieldName = fieldNames[i];
json.append(" \"").append(escapeJson(fieldName)).append("\": \"")
.append(escapeJson(form.getField(fieldName))).append("\"");
if (i < fieldNames.length - 1) {
json.append(",");
}
json.append("\n");
}
json.append("}\n");
Files.writeString(outputFile, json.toString());
} finally {
form.close();
}
}
Exporter les données du formulaire vers XML, FDF et XFDF
-
Créez la façade
Formsans encore lier de document. -
Ouvrez un flux de sortie pour le fichier XML et liez le PDF source à la façade avec
bindPdf(...). -
Appelez
exportXml(stream)pour que les données actuelles des champs de formulaire soient sérialisées au format XML. -
Fermez la façade
Formune fois l’exportation terminée.
public static void extractDataToXml(Path inputFile, Path outputFile) throws Exception {
Form form = new Form();
try (OutputStream stream = Files.newOutputStream(outputFile)) {
form.bindPdf(inputFile.toString());
form.exportXml(stream);
} finally {
form.close();
}
}
-
Créez la façade
Formsans encore lier de document. -
Ouvrez un flux de sortie pour le fichier FDF et liez le PDF source à la façade avec
bindPdf(...). -
Appelez
exportFdf(stream)pour que les données des champs de formulaire soient sérialisées au format FDF. -
Fermez la façade
Formune fois l’exportation terminée.
public static void extractDataToFdf(Path inputFile, Path outputFile) throws Exception {
Form form = new Form();
try (OutputStream stream = Files.newOutputStream(outputFile)) {
form.bindPdf(inputFile.toString());
form.exportFdf(stream);
} finally {
form.close();
}
}
-
Créez la façade
Formsans encore lier de document. -
Ouvrez un flux de sortie pour le fichier XFDF et liez le PDF source à la façade avec
bindPdf(...). -
Appelez
exportXfdf(stream)pour que les données des champs de formulaire soient sérialisées au format XFDF. -
Fermez la façade
Formune fois l’exportation terminée.
public static void extractDataToXfdf(Path inputFile, Path outputFile) throws Exception {
Form form = new Form();
try (OutputStream stream = Files.newOutputStream(outputFile)) {
form.bindPdf(inputFile.toString());
form.exportXfdf(stream);
} finally {
form.close();
}
}