Extraire des données d'AcroForm avec Python
Extraire les champs de formulaire du document PDF
Form de aspose.pdf.facades namespace fournit un moyen simple de lire les données des champs AcroForm sans ouvrir le modèle complet d’objet du document. Itérer sur form.field_names pour obtenir chaque nom de champ présent dans le formulaire, puis appeler form.get_field(name) pour récupérer sa valeur actuelle.
- Construire un
Formobjet en passant le chemin du fichier d’entrée. - Itérer sur
form.field_namespour énumérer tous les noms de champs. - Appeler
form.get_field(name)pour chaque nom et stockez le résultat dans un dictionnaire.
import aspose.pdf as apdf
from io import FileIO
from os import path
import json
from aspose.pycore import cast, is_assignable
path_infile = self.dataDir + infile
form = apdf.facades.Form(path_infile)
form_values = {}
# Get values from all fields
for formField in form.field_names:
# Analyze names and values if needed
form_values[formField] = form.get_field(formField)
print(form_values)
Récupérer la valeur du champ de formulaire par titre
Lorsque vous connaissez le nom exact du champ (title) défini dans le formulaire PDF, vous pouvez récupérer sa valeur directement avec form.get_field(name) sans parcourir l’intégralité de la collection de champs. C’est l’approche la plus rapide lorsque seuls des champs spécifiques sont nécessaires.
- Construire un Form objet contenant le chemin du fichier d’entrée.
- Appeler
form.get_field("FieldName")en utilisant le titre exact du champ tel qu’il apparaît dans le PDF. - Utilisez la valeur de chaîne retournée selon les besoins dans votre application.
import aspose.pdf as apdf
form = apdf.facades.Form(path_infile)
# Retrieve a single field value by its name
value = form.get_field("FirstName")
print(value)
Extraire les champs de formulaire du document PDF vers JSON
Il existe deux façons d’exporter les données AcroForm en JSON. La première utilise la fonction intégrée export_json méthode sur Form, qui sérialise toutes les données de champ directement vers un flux de fichier en un seul appel.
- Construire un
Formobjet contenant le chemin du fichier d’entrée. - Ouvrez le fichier de sortie en tant que flux binaire en utilisant
FileIO. - Appeler
form.export_json(stream, True)écrire la sortie JSON.
import aspose.pdf as apdf
from io import FileIO
from os import path
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
form = apdf.facades.Form(path_infile)
with FileIO(path_outfile, "w") as json_file:
form.export_json(json_file, True)
La deuxième approche construit un dictionnaire Python à partir de field_names et get_field, puis le sérialise avec json.dumps. Utilisez ceci lorsque vous devez transformer ou filtrer les données avant de les écrire.
- Itérer sur
form.field_nameset remplissez un dictionnaire avec les valeurs des champs. - Sérialiser le dictionnaire avec
json.dumps(form_data, indent=4). - Écrivez la chaîne JSON résultante dans le fichier de sortie.
import aspose.pdf as apdf
from os import path
import json
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
form = apdf.facades.Form(path_infile)
form_data = {}
# Get values from all fields
for formField in form.field_names:
form_data[formField] = form.get_field(formField)
# Serialize to JSON
json_string = json.dumps(form_data, indent=4)
print(json_string)
with open(path_outfile, "w", encoding="utf-8") as json_file:
json_file.write(json_string)
Extraire des données au format XML à partir d’un fichier PDF
L’exportation XML est utile pour intégrer les données de formulaire PDF aux systèmes qui consomment des flux XML structurés ou des schémas. Le Form classe fournit export_xml pour gérer la conversion en une seule étape.
- Créer un
Forminstance et lier le PDF avecform.bind_pdf(path). - Ouvrez le fichier de sortie en tant que flux binaire.
- Appeler
form.export_xml(stream)pour écrire toutes les données des champs au format XML.
import aspose.pdf as apdf
from io import FileIO
from os import path
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
# Create Form object
form = apdf.facades.Form()
# Bind PDF document
form.bind_pdf(path_infile)
# Export data to XML file
with FileIO(path_outfile, "w") as f:
form.export_xml(f)
Exporter les données vers le format FDF à partir d’un fichier PDF
FDF (Forms Data Format) est le format d’échange standard pour les données AcroForm et est largement pris en charge par les visionneuses PDF et les outils de traitement. Utilisez export_fdf sur le Form classe pour produire un fichier FDF autonome qui peut être importé de nouveau dans le PDF original ou dans un autre formulaire compatible.
- Créer un
Forminstanciez et liez le PDF source avecform.bind_pdf(path). - Ouvrez le fichier de sortie en tant que flux binaire.
- Appeler
form.export_fdf(stream)pour écrire les données FDF.
import aspose.pdf as apdf
from io import FileIO
from os import path
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
# Create Form object
form = apdf.facades.Form()
# Bind PDF document
form.bind_pdf(path_infile)
# Export form data to an FDF file
with FileIO(path_outfile, "w") as f:
form.export_fdf(f)
Exporter les données vers XFDF à partir d’un fichier PDF
XFDF (XML Forms Data Format) est le successeur basé sur XML du FDF et est mieux adapté à une utilisation dans les services Web et les pipelines de données modernes. Comme le FDF, un fichier XFDF peut être importé de nouveau dans un formulaire PDF compatible. Utilisez export_xfdf sur le Form classe pour générer la sortie.
- Créer un
Forminstanciez et liez le PDF source avecform.bind_pdf(path). - Ouvrez le fichier de sortie en tant que flux binaire.
- Appeler
form.export_xfdf(stream)écrire les données XFDF.
import aspose.pdf as apdf
from io import FileIO
from os import path
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
# Create Form object
form = apdf.facades.Form()
# Bind PDF document
form.bind_pdf(path_infile)
# Export form data to an XFDF file
with FileIO(path_outfile, "w") as f:
form.export_xfdf(f)