Extraer datos de AcroForm

Extraer campos de formulario de un documento PDF

Aspose.PDF for Android via Java no solo le permite crear y rellenar campos de formulario, sino que también facilita la extracción de datos de campos de formulario o información de campos de formulario de archivos PDF.

Supongamos que no conocemos los nombres de los campos del formulario de antemano. Entonces debemos iterar sobre cada página del PDF para extraer información sobre todos los AcroForms en el PDF, así como los valores de los campos del formulario. Para acceder al formulario necesitamos usar getForm método.

 public void extractFormFields () {
        // Open document
        try {
            document=new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        // Get values from all fields
        StringBuilder sb=new StringBuilder();
        for (com.aspose.pdf.Field formField : document.getForm().getFields()) {
            sb.append("Field Name: ");
            sb.append(formField.getPartialName());
            sb.append(" Value: ");
            sb.append(formField.getValue());
            sb.append('\n');
        }
        resultMessage.setText(sb);
    }

Si conoce el nombre de los campos de formulario de los que desea extraer valores, puede usar el indexador en la colección Documents.Form para recuperar rápidamente estos datos.

Recuperar el valor del campo de formulario por título

La propiedad Value del campo de formulario le permite obtener el valor de un campo en particular. Para obtener el valor, obtenga el campo de formulario de la Documento objeto’s colección de campos de formulario. Este ejemplo selecciona un TextBoxField y recupera su valor usando el getValue método.


    public void extractFormDataByName () {
        // Open document
        try {
            document=new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        com.aspose.pdf.TextBoxField textBoxField1
                =(com.aspose.pdf.TextBoxField) document.getForm().get("Last Name");

        resultMessage.setText("Last Name: " + textBoxField1.getValue());

    }

Extraer datos a XML de un archivo PDF

La clase Form le permite exportar datos a un archivo XML desde el archivo PDF mediante el método ExportXml. Para exportar datos a XML, necesita crear un objeto de la clase Form y luego llamar al método ExportXml utilizando el objeto FileStream. Finalmente, puede cerrar el objeto FileStream y disponer del objeto Form. El siguiente fragmento de código le muestra cómo exportar datos a un archivo XML.

public void extractFormFieldsToXML () {
        // Open document
        try {
            document=new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        com.aspose.pdf.facades.Form form=new com.aspose.pdf.facades.Form();
        form.bindPdf(document);
        File file=new File(fileStorage, "output.xml");
        try {
            // Create xml file.
            FileOutputStream xmlOutputStream;
            xmlOutputStream=new FileOutputStream(file.toString());
            // Export data
            form.exportXml(xmlOutputStream);

            // Close file stream
            xmlOutputStream.close();
        } catch (IOException e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        // Close the document
        form.dispose();
    }

Exportar datos a FDF desde un archivo PDF

Para exportar los datos de formularios PDF a un archivo XFDF, podemos usar el exportFdf método en el Form clase.

Tenga en cuenta, que es una clase de com.aspose.pdf.facades. A pesar del nombre similar, esta clase tiene un propósito ligeramente diferente.

Para exportar datos a FDF, necesita crear un objeto de Form clase y luego llame al exportXfdf método usando el OutputStream objeto. El siguiente fragmento de código le muestra cómo exportar datos a un archivo XFDF.

public void extractFormExportFDF () {
        // Open document
        try {
            document=new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        File file=new File(fileStorage, "student.fdf");

        com.aspose.pdf.facades.Form form=new com.aspose.pdf.facades.Form(document);
        FileOutputStream fdfOutputStream;
        try {

            fdfOutputStream=new FileOutputStream(file.toString());

            // Export data
            form.exportFdf(fdfOutputStream);

            // Close file stream
            fdfOutputStream.close();

        } catch (IOException e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Exportar datos a XFDF desde un archivo PDF

Para exportar los datos de formularios PDF a un archivo XFDF, podemos usar el exportXfdf método en el Form clase.

Para exportar datos a XFDF, necesitas crear un objeto de Form clase y luego llame al exportXfdf método usando el OutputStream objeto. El siguiente fragmento de código le muestra cómo exportar datos a un archivo XFDF.

    public void extractFormExportXFDF () {
        // Open document
        try {
            document=new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        File file=new File(fileStorage, "student.xfdf");

        com.aspose.pdf.facades.Form form=new com.aspose.pdf.facades.Form(document);
        FileOutputStream fdfOutputStream;
        try {

            fdfOutputStream=new FileOutputStream(file.toString());

            // Export data
            form.exportXfdf(fdfOutputStream);

            // Close file stream
            fdfOutputStream.close();

        } catch (IOException e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }