Extraer datos de AcroForm usando Python
Extraer campos de formulario del documento PDF
Form del aspose.pdf.facades namespace proporciona una forma sencilla de leer los datos de los campos AcroForm sin abrir el modelo de objeto del documento completo. Iterar sobre form.field_names para obtener el nombre de cada campo presente en el formulario, luego llame form.get_field(name) para recuperar su valor actual.
- Construir un
Formobjeto pasando la ruta del archivo de entrada. - Iterar sobre
form.field_namesenumerar todos los nombres de campo. - Llamar
form.get_field(name)para cada nombre y almacena el resultado en un diccionario.
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)
Recuperar valor del campo de formulario por título
Cuando sabes el nombre exacto del campo (title) definido en el formulario PDF, puedes obtener su valor directamente con form.get_field(name) sin iterar sobre toda la colección de campos. Este es el enfoque más rápido cuando solo se necesitan campos específicos.
- Construir un Form objeto con la ruta del archivo de entrada.
- Llamar
form.get_field("FieldName")usando el título exacto del campo tal como aparece en el PDF. - Utilice el valor de cadena devuelto según sea necesario en su aplicación.
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)
Extraer campos de formulario del documento PDF a JSON
Hay dos maneras de exportar datos de AcroForm a JSON. La primera utiliza la funcionalidad incorporada export_json método en Form, que serializa todos los datos de campo directamente a un flujo de archivo en una sola llamada.
- Construir un
Formobjeto con la ruta del archivo de entrada. - Abra el archivo de salida como un flujo binario usando
FileIO. - Llamar
form.export_json(stream, True)para escribir la salida 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)
El segundo enfoque crea un diccionario de Python a partir de field_names y get_field, luego lo serializa con json.dumps. Utilice esto cuando necesite transformar o filtrar los datos antes de escribirlos.
- Iterar sobre
form.field_namesy rellenar un diccionario con los valores de los campos. - Serializa el diccionario con
json.dumps(form_data, indent=4). - Escribe la cadena JSON resultante en el archivo de salida.
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)
Extraer datos a XML desde un archivo PDF
La exportación de XML es útil para integrar los datos de formularios PDF con sistemas que consumen feeds XML estructurados o esquemas. El Form la clase proporciona export_xml para manejar la conversión en un solo paso.
- Crear un
Forminstancia y enlaza el PDF conform.bind_pdf(path). - Abra el archivo de salida como un flujo binario.
- Llamar
form.export_xml(stream)para escribir todos los datos de los campos como 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)
Exportar datos a FDF desde un archivo PDF
FDF (Forms Data Format) es el formato de intercambio estándar para los datos de AcroForm y es ampliamente compatible con los visualizadores de PDF y las herramientas de procesamiento. Usar export_fdf en el Form clase para producir un archivo FDF independiente que pueda importarse de nuevo al PDF original o a otro formulario compatible.
- Crear un
Forminstancia y vincula el PDF de origen conform.bind_pdf(path). - Abra el archivo de salida como un flujo binario.
- Llamar
form.export_fdf(stream)para escribir los datos 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)
Exportar datos a XFDF desde un archivo PDF
XFDF (Formato de Datos de Formularios XML) es el sucesor basado en XML de FDF y está mejor adaptado para su uso en servicios web y canalizaciones de datos modernas. Al igual que FDF, un archivo XFDF puede importarse de nuevo en un formulario PDF compatible. Usar export_xfdf en el Form clase para generar la salida.
- Crear un
Forminstancia y vincula el PDF de origen conform.bind_pdf(path). - Abra el archivo de salida como un flujo binario.
- Llamar
form.export_xfdf(stream)para escribir los datos 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)