Extraire AcroForm - Extraire les données de formulaire à partir de PDF en C#

Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

Extraire des données du formulaire

Obtenir les valeurs de tous les champs du document PDF

Pour obtenir les valeurs de tous les champs d’un document PDF, vous devez naviguer à travers tous les champs de formulaire et ensuite obtenir la valeur en utilisant la propriété Value. Obtenez chaque champ de la collection Form, dans le type de champ de base appelé Field et accédez à sa propriété Value.

Les extraits de code C# suivants montrent comment obtenir les valeurs de tous les champs d’un document PDF.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "GetValuesFromAllFields.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);
        }
    }
}

Obtenir la valeur d’un champ individuel du document PDF

La propriété Value du champ de formulaire vous permet d’obtenir la valeur d’un champ particulier. Pour obtenir la valeur, obtenez le champ de formulaire de la collection Form de l’objet Document. Cet exemple C# sélectionne un TextBoxField et récupère sa valeur en utilisant la propriété Value.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "GetValueFromField.pdf"))
    {
        // Get a field
        if (document.Form["textbox1"] is Aspose.Pdf.Forms.TextBoxField textBoxField)
        {
            // Get field value
            Console.WriteLine("PartialName : {0} ", textBoxField.PartialName);
            Console.WriteLine("Value : {0} ", textBoxField.Value);
        }
    }
}

Pour obtenir l’URL du bouton de soumission, utilisez les lignes de code suivantes.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "GetValueFromField.pdf"))
    {
        // Get the SubmitFormAction from the form field
        if (document.Form[1].OnActivated is Aspose.Pdf.Annotations.SubmitFormAction act)
        {
            // Output the URL of the SubmitFormAction
            Console.WriteLine(act.Url.Name);
        }
    }
}

Obtenir les champs de formulaire d’une région spécifique du fichier PDF

Parfois, vous pourriez savoir où se trouve un champ de formulaire dans un document, mais ne pas connaître son nom. Par exemple, si tout ce que vous avez est un schéma d’un formulaire imprimé. Avec Aspose.PDF for .NET, ce n’est pas un problème. Vous pouvez découvrir quels champs se trouvent dans une région donnée d’un fichier PDF. Pour obtenir des champs de formulaire d’une région spécifique d’un fichier PDF :

  1. Ouvrez le fichier PDF en utilisant l’objet Document.
  2. Obtenez le formulaire de la collection Forms du document.
  3. Spécifiez la région rectangulaire et passez-la à la méthode GetFieldsInRect de l’objet Form. Une collection de Fields est retournée.
  4. Utilisez cela pour manipuler les champs.

L’extrait de code C# suivant montre comment obtenir des champs de formulaire dans une région rectangulaire spécifique d’un fichier PDF.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "GetFieldsFromRegion.pdf"))
    {
        // Create rectangle object to get fields in that area
        var rectangle = new Aspose.Pdf.Rectangle(35, 30, 500, 500);

        // Get the PDF form
        var form = document.Form;

        // Get fields in the rectangular area
        var fields = form.GetFieldsInRect(rectangle);

        // Display Field names and values
        foreach (var field in fields)
        {
            // Display image placement properties for all placements
            Console.Out.WriteLine("Field Name: " + field.FullName + "-" + "Field Value: " + field.Value);
        }
    }
}