Remplir le formulaire PDF

Les formulaires PDF sont fréquemment utilisés pour collecter des données et des informations. Par exemple, les questionnaires sont généralement conçus pour recueillir des réponses à des fins d’enquête. Nous interagissons avec différents formulaires PDF à remplir dans le monde numérique d’aujourd’hui. Compte tenu de l’étendue et de l’importance des formulaires PDF, l’API Aspose.PDF for .NET prend en charge de nombreuses fonctionnalités pour travailler avec les formulaires PDF. Explorons les cas d’utilisation suivants en utilisant le langage C# dans cet article :

Créer des formulaires PDF remplissables à l’aide de C#

Vous pouvez créer un formulaire PDF à remplir à partir de zéro en utilisant Aspose.PDF for .NET. Ici, nous allons considérer l’exemple de base de l’ajout de deux instances TextBoxField et RadioButton. Cependant, l’un des TextBoxField est à une seule ligne tandis que l’autre est à plusieurs lignes. Voici les étapes pour créer un formulaire dans un document PDF :

  1. Créer une instance de la classe Document
  2. Ajouter une page vierge dans un document PDF
  3. Ajouter un champ TextBox dans le formulaire
  4. Définissez différentes propriétés des champs, y compris la police, la bordure, etc.
  5. Ajoutez Bouton Radio dans le formulaire
  6. Enregistrer le document PDF

L’extrait de code suivant montre comment créer un formulaire au format PDF à l’aide de C# :

Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// Ajouter des champs de formulaire à la première page du document PDF            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//Ajouter des boutons radio à des coordonnées de position spécifiques dans le PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Définir la position ici
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");

La capture d’écran ci-dessous montre un document PDF de sortie contenant des champs de formulaire comme spécifié dans l’extrait de code ci-dessus :

Formulaire PDF

Remplir, modifier ou supprimer des champs de formulaire dans un PDF existant à l’aide de C#

Comme nous avons exploré la création d’un formulaire dans un document PDF à l’aide de C#, l’API Aspose.PDF for .NET prend également en charge l’utilisation de formulaires PDF existants. Discutons des fonctionnalités suivantes de l’API.

i) Remplir un champ de formulaire dans un fichier PDF existant à l’aide de C#

Pour remplir les formulaires PDF, nous continuerons avec le document PDF qui a été créé dans l’exemple ci-dessus. Voici les étapes pour remplir les champs d’un document PDF existant :

  1. Charger le document PDF source
  2. Obtenir Textbox Champs et remplir les valeurs
  3. Obtenez Champ bouton radio et sélectionnez une option dans le groupe
  4. Enregistrer le formulaire PDF rempli

L’extrait de code suivant suit ces étapes et explique comment remplir les champs d’un document PDF à l’aide de C# :

// Ouvrir le document
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// Obtenir les champs
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Remplir les valeurs des champs du formulaire
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// Obtenir le champ du bouton radio
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Spécifiez l'index du bouton radio du groupe
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Enregistrer le document mis à jour
pdfDocument.Save(dataDir);

La capture d’écran ci-dessous montre les champs de formulaire remplis du formulaire PDF à l’aide de C# :

PDF remplissable

ii) Modifier un champ de formulaire dans un document PDF à l’aide de C#

Parfois, vous devrez peut-être modifier la valeur de n’importe quel champ d’un formulaire PDF. La modification d’une valeur dans un champ de formulaire est un cas d’utilisation de base qui peut être réalisé en suivant les étapes ci-dessous :

  1. Charger le formulaire PDF
  2. Obtenir un champ spécifique en utilisant son nom
  3. Modifier la valeur du champ
  4. Enregistrer le document PDF mis à jour

L’extrait de code suivant montre comment modifier une valeur dans un champ de formulaire d’un document PDF :

// Ouvrir le document
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Obtenir un champ
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Modifier la valeur du champ
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Enregistrer le document mis à jour
pdfDocument.Save(dataDir);

Il convient de noter ici que vous pouvez non seulement modifier la valeur du formulaire, mais que d’autres propriétés peuvent également être mises à jour. Par exemple, le champ a été marqué en lecture seule dans l’extrait de code ci-dessus.

iii) Supprimer un champ de formulaire dans un fichier PDF existant à l’aide de C#

Nous avons déjà appris comment ajouter et remplir des champs de formulaire PDF. Explorons maintenant la suppression d’un champ de formulaire. Vous devez suivre les étapes ci-dessous :

  1. Charger le document PDF
  2. Appelez la méthode Delete avec le nom du champ de formulaire
  3. Enregistrer le document PDF

L’extrait de code suivant montre comment supprimer un champ de formulaire d’un fichier PDF à l’aide de C# :

// Ouvrir le document
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Supprimer un champ particulier par son nom
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Enregistrer le document modifié
pdfDocument.Save(dataDir);

Préserver les droits étendus des formulaires PDF à l’aide de C#

Un formulaire PDF peut avoir des droits étendus, également appelés fonctionnalités étendues, que vous souhaitez conserver lors de la manipulation du formulaire. Vous devez l’enregistrer progressivement en suivant les étapes ci-dessous :

  • Charger le document PDF dans Stream
  • Travailler avec le formulaire
  • Enregistrez le fichier sans aucun paramètre

L’extrait de code C# suivant explique comment conserver les droits étendus du formulaire PDF :

// Lire le formulaire PDF source avec FileAccess de lecture et d'écriture.
// Nous avons besoin de l'autorisation ReadWrite car après modification,
// Nous devons enregistrer le contenu mis à jour dans le même document/fichier.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Instancier l'instance de document
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Obtenir des valeurs de tous les champs
foreach (Field formField in pdfDocument.Form)
{
    // Si le nom complet du champ contient A1, effectuez l'opération
    if (formField.FullName.Contains("nameBox1"))
    {
        // Convertir le champ de formulaire en TextBox
        TextBoxField textBoxField = formField as TextBoxField;
        // Modifier la valeur du champ
        textBoxField.Value = "Preserve Extended Features";
    }
}
// Enregistrez le document mis à jour dans save FileStream
pdfDocument.Save();
// Fermer l'objet File Stream
fs.Close();

Utiliser JavaScript dans un formulaire PDF à l’aide de C#

Vous pouvez utiliser JavaScript dans les champs de formulaire PDF avec l’API Aspose.PDF for .NET. Suivons les étapes ci-dessous pour répondre à cette exigence :

  1. Initier une instance de la classe Document
  2. Ajouter un TextBoxField sur la première page à des coordonnées de page spécifiques
  3. Configurer JavaScript
  4. Spécifier l’action du document
  5. Enregistrer le document PDF

L’extrait de code suivant montre comment ajouter du JavaScript dans un formulaire PDF à l’aide de C# :

Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = nouvelle bordure();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// Ajouter un champ au document
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");

Le JavaScript obtient la date et l’heure actuelles du système lorsque le document PDF est ouvert et cette valeur est renseignée dans une zone de texte.

Conclusion

Dans cet article, nous avons appris différents aspects de l’utilisation des formulaires dans les documents PDF. Créer, remplir ou éditer des formulaires PDF est simple avec Aspose.PDF for .NET. L’API offre de nombreuses fonctionnalités intéressantes pour travailler avec différents fichiers. Faites-nous part de vos commentaires ou commentaires via Forum d’assistance gratuit.

Voir également