Modification d'AcroForm

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

Obtenir ou définir la limite des champs

La méthode SetFieldLimit(field, limit) de la classe FormEditor vous permet de définir une limite de champ, le nombre maximum de caractères pouvant être saisis dans un champ.

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

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

        // Set field limit for "textbox1"
        form.SetFieldLimit("textbox1", 15);

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

De même, Aspose.PDF dispose d’une méthode qui obtient la limite de champ en utilisant l’approche DOM. Le code suivant montre les étapes.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "FieldLimit.pdf"))
    {
        // Get the field and its maximum limit
        if (document.Form["textbox1"] is Aspose.Pdf.Forms.TextBoxField textBoxField)
        {
            Console.WriteLine("Limit: " + textBoxField.MaxLen);
        }
    }
}

Vous pouvez également obtenir la même valeur en utilisant l’espace de noms Aspose.Pdf.Facades avec le code suivant.

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

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

        // Get the field limit for "textbox1"
        Console.WriteLine("Limit: " + form.GetFieldLimit("textbox1"));
    }
}

Définir une police personnalisée pour le champ de formulaire

Les champs de formulaire dans les fichiers PDF Adobe peuvent être configurés pour utiliser des polices par défaut spécifiques. Dans les premières versions d’Aspose.PDF, seules les 14 polices par défaut étaient prises en charge. Les versions ultérieures ont permis aux développeurs d’appliquer n’importe quelle police. Pour définir et mettre à jour la police par défaut utilisée pour les champs de formulaire, utilisez la classe DefaultAppearance(Font font, double size, Color color). Cette classe se trouve sous l’espace de noms Aspose.Pdf.InteractiveFeatures. Pour utiliser cet objet, utilisez la propriété DefaultAppearance de la classe Field.

Le code suivant montre comment définir la police par défaut pour les champs de formulaire PDF.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "FormFieldFont14.pdf"))
    {
        // Get particular form field from document
        if (document.Form["textbox1"] is Aspose.Pdf.Forms.Field field)
        {
            // Create font object
            var font = Aspose.Pdf.Text.FontRepository.FindFont("ComicSansMS");

            // Set the font information for form field
            field.DefaultAppearance = new Aspose.Pdf.Annotations.DefaultAppearance(font, 10, System.Drawing.Color.Black);
        }

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

Ajouter/supprimer des champs dans un formulaire existant

Tous les champs de formulaire sont contenus dans la collection Form de l’objet Document. Cette collection fournit différentes méthodes qui gèrent les champs de formulaire, y compris la méthode Delete. Si vous souhaitez supprimer un champ particulier, passez le nom du champ en tant que paramètre à la méthode Delete, puis enregistrez le document PDF mis à jour. Le code suivant montre comment supprimer un champ particulier d’un document PDF.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "DeleteFormField.pdf"))
    {
        // Delete a particular field by name
        document.Form.Delete("textbox1");

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