Create AcroForm - Create Fillable PDF in C#

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

Créer un formulaire à partir de zéro

Ajouter un champ de formulaire dans un document PDF

La classe Document fournit une collection nommée Form qui vous aide à gérer les champs de formulaire dans un document PDF.

Pour ajouter un champ de formulaire :

  1. Créez le champ de formulaire que vous souhaitez ajouter.
  2. Appelez la méthode Add de la collection Form.

Ajout de TextBoxField

L’exemple ci-dessous montre comment ajouter un TextBoxField.

// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

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

// Créer un champ
TextBoxField textBoxField = new TextBoxField(pdfDocument.Pages[1], new Aspose.Pdf.Rectangle(100, 200, 300, 300));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";

// TextBoxField.Border = new Border(
Border border = new Border(textBoxField);
border.Width = 5;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;

textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);

// Ajouter le champ au document
pdfDocument.Form.Add(textBoxField, 1);

dataDir = dataDir + "TextBox_out.pdf";
// Sauvegarder le PDF modifié
pdfDocument.Save(dataDir);

Ajout de RadioButtonField

Le code suivant montre comment ajouter RadioButtonField dans un document PDF.

// Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Instancier l'objet Document
Document pdfDocument = new Document();
// Ajouter une page au fichier PDF
pdfDocument.Pages.Add();
// Instancier l'objet RadioButtonField avec le numéro de page comme argument
RadioButtonField radio = new RadioButtonField(pdfDocument.Pages[1]);
// Ajouter la première option de bouton radio et spécifier également son origine à l'aide de l'objet Rectangle
radio.AddOption("Test", new Rectangle(0, 0, 20, 20));
// Ajouter la deuxième option de bouton radio
radio.AddOption("Test1", new Rectangle(20, 20, 40, 40));
// Ajouter le bouton radio à l'objet formulaire de l'objet Document
pdfDocument.Form.Add(radio);

dataDir = dataDir + "RadioButton_out.pdf";
// Sauvegarder le fichier PDF
pdfDocument.Save(dataDir);

Le fragment de code suivant montre les étapes pour ajouter un RadioButtonField avec trois options et les placer dans des cellules de tableau.

// Pour des exemples complets et des fichiers de données, veuillez vous rendre sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

Document doc = new Document();
Page page = doc.Pages.Add();
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
table.ColumnWidths = "120 120 120";
page.Paragraphs.Add(table);
Row r1 = table.Rows.Add();
Cell c1 = r1.Cells.Add();
Cell c2 = r1.Cells.Add();
Cell c3 = r1.Cells.Add();

RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
doc.Form.Add(rf, 1);

RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
RadioButtonOptionField opt3 = new RadioButtonOptionField();

opt1.OptionName = "Item1";
opt2.OptionName = "Item2";
opt3.OptionName = "Item3";

opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
opt3.Width = 15;
opt3.Height = 15;

rf.Add(opt1);
rf.Add(opt2);
rf.Add(opt3);

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("Item1");
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("Item2");
opt3.Border = new Border(opt1);
opt3.Border.Width = 1;
opt3.Border.Style = BorderStyle.Solid;
opt3.Characteristics.Border = System.Drawing.Color.Black;
opt3.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt3.Caption = new TextFragment("Item3");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
c3.Paragraphs.Add(opt3);

dataDir = dataDir + "RadioButtonWithOptions_out.pdf";
// Enregistrer le fichier PDF
doc.Save(dataDir);

Ajout de légende à RadioButtonField

Le fragment de code suivant montre comment ajouter une légende qui sera associée à RadioButtonField:

// Pour des exemples complets et des fichiers de données, veuillez vous rendre sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Charger le formulaire PDF source
Aspose.Pdf.Facades.Form form1 = new Aspose.Pdf.Facades.Form(dataDir + "RadioButtonField.pdf");
Document PDF_Template_PDF_HTML = new Document(dataDir + "RadioButtonField.pdf");
foreach (var item in form1.FieldNames)
{
    Console.WriteLine(item.ToString());
    Dictionary<string, string> radioOptions = form1.GetButtonOptionValues(item);
    if (item.Contains("radio1"))
    {
        Aspose.Pdf.Forms.RadioButtonField field0 = PDF_Template_PDF_HTML.Form[item] as Aspose.Pdf.Forms.RadioButtonField;
        Aspose.Pdf.Forms.RadioButtonOptionField fieldoption = new Aspose.Pdf.Forms.RadioButtonOptionField();
        fieldoption.OptionName = "Oui";
        fieldoption.PartialName = "NomOui";

        var updatedFragment = new Aspose.Pdf.Text.TextFragment("test123");
        updatedFragment.TextState.Font = FontRepository.FindFont("Arial");
        updatedFragment.TextState.FontSize = 10;
        updatedFragment.TextState.LineSpacing = 6.32f;

        // Créer un objet TextParagraph
        TextParagraph par = new TextParagraph();

        // Définir la position du paragraphe
        par.Position = new Position(field0.Rect.LLX, field0.Rect.LLY + updatedFragment.TextState.FontSize);
        // Spécifier le mode d'enveloppement des mots
        par.FormattingOptions.WrapMode = TextFormattingOptions.WordWrapMode.ByWords;

        // Ajouter un nouveau TextFragment au paragraphe
        par.AppendLine(updatedFragment);

        // Ajouter le TextParagraph en utilisant TextBuilder
        TextBuilder textBuilder = new TextBuilder(PDF_Template_PDF_HTML.Pages[1]);
        textBuilder.AppendParagraph(par);

        field0.DeleteOption("item1");
    }
}
PDF_Template_PDF_HTML.Save(dataDir + "RadioButtonField_out.pdf");

Ajout d’un champ ComboBox

Le code suivant montre comment ajouter un champ ComboBox dans un document PDF.

// Pour des exemples complets et des fichiers de données, veuillez visiter https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Créer un objet Document
Document doc = new Document();

// Ajouter une page à l'objet document
doc.Pages.Add();

// Instancier l'objet ComboBox Field
ComboBoxField combo = new ComboBoxField(doc.Pages[1], new Aspose.Pdf.Rectangle(100, 600, 150, 616));

// Ajouter des options à ComboBox
combo.AddOption("Red");
combo.AddOption("Yellow");
combo.AddOption("Green");
combo.AddOption("Blue");

// Ajouter l'objet combo box à la collection de champs de formulaire de l'objet document
doc.Form.Add(combo);
dataDir = dataDir + "ComboBox_out.pdf";
// Sauvegarder le document PDF
doc.Save(dataDir);

Ajouter une infobulle à un champ de formulaire

La classe Document fournit une collection nommée Form qui gère les champs de formulaire dans un document PDF. La classe Document fournit une collection nommée Form qui gère les champs de formulaire dans un document PDF.

Les extraits de code qui suivent montrent comment ajouter une infobulle à un champ de formulaire, d’abord en utilisant C# puis Visual Basic.

// Pour des exemples complets et des fichiers de données, veuillez visiter https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Charger le formulaire PDF source
Document doc = new Document(dataDir + "AddTooltipToField.pdf");

// Définir l'infobulle pour le champ de texte
(doc.Form["textbox1"] as Field).AlternateName = "Infobulle de la zone de texte";

dataDir = dataDir + "AddTooltipToField_out.pdf";
// Sauvegarder le document mis à jour
doc.Save(dataDir);