Extrair Dados do AcroForm usando C#

Extrair campos de formulário de documento PDF

Além de permitir que você gere campos de formulário e preencha campos de formulário, Aspose.PDF for .NET facilita a extração de dados de campos de formulário ou informações sobre campos de formulário de arquivos PDF.

No código de exemplo abaixo, demonstramos como iterar por cada página em um PDF para extrair informações sobre todo o AcroForm no PDF, bem como os valores dos campos de formulário. Este código de exemplo presume que você não conhece o nome dos campos de formulário com antecedência.

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractFormFields()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "StudentInfoFormElectronic.pdf"))
    {
        // Get values from all fields
        foreach (Aspose.Pdf.Forms.Field formField in document.Form)
        {
            Console.WriteLine("Field Name : {0} ", formField.PartialName);
            Console.WriteLine("Value : {0} ", formField.Value);
        }
    }
}

Se você souber o nome dos campos de formulário dos quais deseja extrair valores, pode usar o indexador na coleção Documents.Form para recuperar rapidamente esses dados. Veja na parte inferior deste artigo um código de exemplo sobre como usar essa função.

Recuperar valor do campo de formulário pelo título

A propriedade Value do campo de formulário permite que você obtenha o valor de um campo específico. Para obter o valor, obtenha o campo de formulário da coleção Form do objeto Document. Este exemplo seleciona um TextBoxField e recupera seu valor usando a propriedade Value.

Extrair campos de formulário de documento PDF para JSON

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractFormFieldsToJson()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "StudentInfoFormElectronic.pdf"))
    {
        // Extract form fields and convert to JSON
        var formData = document.Form.Cast<Aspose.Pdf.Forms.Field>().Select(f => new { Name = f.PartialName, f.Value });
        string jsonString = System.Text.Json.JsonSerializer.Serialize(formData);

        // Output the JSON string
        Console.WriteLine(jsonString);
    }
}

Extrair Dados para XML de um Arquivo PDF

A classe Form permite que você exporte dados para um arquivo XML a partir do arquivo PDF usando o método ExportXml. Para exportar dados para XML, você precisa criar um objeto da classe Form e, em seguida, chamar o método ExportXml usando o objeto FileStream. Finalmente, você pode fechar o objeto FileStream e descartar o objeto Form. O seguinte trecho de código mostra como exportar dados para um arquivo XML.

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFormDataToXml()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();

    // Create form
    using (var form = new Aspose.Pdf.Facades.Form())
    {
        // Bind PDF document
        form.BindPdf(dataDir + "input.pdf");

        // Create XML file
        using (var xmlOutputStream = new FileStream(dataDir + "input.xml", FileMode.Create))
        {
            // Export data
            form.ExportXml(xmlOutputStream);
        }
    }
}

Exportar Dados para FDF de um Arquivo PDF

A classe Form permite que você exporte dados para um arquivo FDF a partir do arquivo PDF usando o método ExportFdf. Para exportar dados para FDF, você precisa criar um objeto da classe Form e, em seguida, chamar o método ExportFdf usando o objeto FileStream. Finalmente, você pode salvar o arquivo PDF usando o método Save da classe Form. O seguinte trecho de código mostra como exportar dados para um arquivo FDF.

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportDataToPdf()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();

    // Create form
    using (var form = new Aspose.Pdf.Facades.Form())
    {
        // Bind PDF document
        form.BindPdf(dataDir + "input.pdf");

        // Create fdf file
        using (var fdfOutputStream = new FileStream(dataDir + "student.fdf", FileMode.Create))
        {
            // Export data
            form.ExportFdf(fdfOutputStream);
        }

        // Save PDF document
        form.Save(dataDir + "ExportDataToPdf_out.pdf");
    }
}

Exportar Dados para XFDF de um Arquivo PDF

A classe Form permite que você exporte dados para um arquivo XFDF a partir do arquivo PDF usando o método ExportXfdf. Para exportar dados para XFDF, você precisa criar um objeto da classe Form e, em seguida, chamar o método ExportXfdf usando o objeto FileStream. Finalmente, você pode salvar o arquivo PDF usando o método Save da classe Form. O seguinte trecho de código mostra como exportar dados para um arquivo XFDF.

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportDataToXFDF()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_Forms();

    // Create form
    using (var form = new Aspose.Pdf.Facades.Form())
    {
        // Bind PDF document
        form.BindPdf(dataDir + "input.pdf");

        // Create xfdf file
        using (var xfdfOutputStream = new FileStream(dataDir + "student1.xfdf", FileMode.Create))
        {
            // Export data
            form.ExportXfdf(xfdfOutputStream);
        }

        // Save PDF document
        form.Save(dataDir + "ExportDataToXFDF_out.pdf");
    }
}