Avec l’avènement des ordinateurs et d’Internet, de nombreuses informations sont saisies numériquement. Différentes entreprises ont proposé des solutions pour rendre ce processus plus efficace. Une de ces solutions est les formulaires PDF à remplir. Les formulaires PDF sont un choix populaire qui facilite la saisie numérique des informations. Les formulaires PDF peuvent être utilisés pour saisir des données d’enquête ou comme formulaires d’admission. À la lumière de cela, cet article vous apprendra comment créer, remplir et modifier des formulaires PDF remplissables à l’aide de C++.
- API C++ pour la création, le remplissage et l’édition de formulaires PDF remplissables
- Créer des formulaires PDF remplissables à l’aide de C++
- Remplir un formulaire existant dans un fichier PDF à l’aide de C++
- Modifier la valeur d’un champ de formulaire dans un formulaire PDF à l’aide de C++
- Supprimer un champ de formulaire d’un formulaire PDF existant à l’aide de C++
API C++ pour la création, le remplissage et l’édition de formulaires PDF remplissables
Aspose.PDF for C++ est une bibliothèque C++ qui vous permet de créer, lire et mettre à jour des documents PDF. De plus, l’API prend en charge la création, le remplissage et l’édition de formulaires PDF à remplir. Vous pouvez soit installer l’API via NuGet ou la télécharger directement à partir de la section downloads.
PM> Install-Package Aspose.PDF.Cpp
Créer des formulaires PDF remplissables à l’aide de C++
Dans cet exemple, nous allons créer un formulaire à partir de zéro avec deux zones de texte et un bouton radio. Cependant, une zone de texte comporte plusieurs lignes et l’autre une seule ligne. Voici les étapes pour créer un formulaire dans un fichier PDF.
- Créez une instance de la classe Document.
- Ajoutez une page vierge au document.
- Créez une instance de la classe TextBoxField.
- Définissez les propriétés de TextBoxField comme FontSize, Color, etc.
- Créez une instance du second TextBoxField et définissez ses propriétés.
- Ajoutez les deux zones de texte au formulaire en utilisant Document->getForm()->Add(System::SharedPtr champ, int32t pageNumber) méthode.
- Créez un tableau.
- Créez une instance de la classe RadioButtonField.
- Ajoutez le RadioButton au formulaire en utilisant Document->getForm()->Add(System::SharedPtr champ, int32t pageNumber) méthode.
- Créez deux instances de la classe RadioButtonOptionField pour représenter les options du bouton radio.
- Définissez OptionName, Width et Height et ajoutez les options au bouton radio à l’aide de RadioButtonField->Add(System::SharedPtr const & newItem) méthode.
- Ajoutez les options du bouton radio aux cellules du tableau en utilisant Cell->getParagraphs()->Add(System::SharedPtr paragraphe) méthode.
- Enregistrez le fichier de sortie à l’aide de la méthode Document->Save(System::String outputFileName).
L’exemple de code suivant montre comment créer un formulaire dans un fichier PDF à l’aide de C++.
// Créer une instance de la classe Document
auto pdfDocument = MakeObject<Document>();
// Ajouter une page vierge au document
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();
System::SharedPtr<Aspose::Pdf::Rectangle> rectangle1 = MakeObject<Aspose::Pdf::Rectangle>(275, 740, 440, 770);
// Créer un champ TextBox
System::SharedPtr<TextBoxField> nameBox = MakeObject<TextBoxField>(pdfDocument, rectangle1);
nameBox->set_PartialName(u"nameBox1");
nameBox->get_DefaultAppearance()->set_FontSize(10);
nameBox->set_Multiline(true);
System::SharedPtr<Border> nameBorder = MakeObject<Border>(nameBox);
nameBorder->set_Width(1);
nameBox->set_Border(nameBorder);
nameBox->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
nameBox->set_Color(Aspose::Pdf::Color::FromRgb(System::Drawing::Color::get_Red()));
System::SharedPtr<Aspose::Pdf::Rectangle> rectangle2 = MakeObject<Aspose::Pdf::Rectangle>(275, 718, 440, 738);
// Créer un champ TextBox
System::SharedPtr<TextBoxField> mrnBox = MakeObject<TextBoxField>(pdfDocument, rectangle2);
mrnBox->set_PartialName(u"Box1");
mrnBox->get_DefaultAppearance()->set_FontSize(10);
System::SharedPtr<Border> mrnBorder = MakeObject<Border>(mrnBox);
mrnBox->set_Width(165);
mrnBox->set_Border(mrnBorder);
mrnBox->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
mrnBox->set_Color(Aspose::Pdf::Color::FromRgb(System::Drawing::Color::get_Red()));
// Ajouter TextBoxField au formulaire
pdfDocument->get_Form()->Add(nameBox, 1);
pdfDocument->get_Form()->Add(mrnBox, 1);
// Créer un tableau
System::SharedPtr<Table> table = MakeObject<Table>();
table->set_Left(200);
table->set_Top(300);
table->set_ColumnWidths(u"120");
// Ajouter le tableau à la page
page->get_Paragraphs()->Add(table);
// Créer des lignes et des colonnes
System::SharedPtr<Row> r1 = table->get_Rows()->Add();
System::SharedPtr<Row> r2 = table->get_Rows()->Add();
System::SharedPtr<Cell> c1 = r1->get_Cells()->Add();
System::SharedPtr<Cell> c2 = r2->get_Cells()->Add();
// Créer un champ de bouton radio
System::SharedPtr<RadioButtonField> rf = MakeObject<RadioButtonField>(page);
rf->set_PartialName(u"radio");
// Ajouter le RadioButtonField au formulaire
pdfDocument->get_Form()->Add(rf, 1);
// Créer des options de bouton radio
System::SharedPtr<RadioButtonOptionField> opt1 = MakeObject<RadioButtonOptionField>();
System::SharedPtr<RadioButtonOptionField> opt2 = MakeObject<RadioButtonOptionField>();
opt1->set_OptionName(u"Yes");
opt2->set_OptionName(u"No");
opt1->set_Width(15);
opt1->set_Height(15);
opt2->set_Width(15);
opt2->set_Height(15);
// Ajouter les options au RadioButtonField
rf->Add(opt1);
rf->Add(opt2);
System::SharedPtr<Border> opt1Border = MakeObject<Border>(opt1);
opt1->set_Border(opt1Border);
opt1->get_Border()->set_Width(1);
opt1->get_Border()->set_Style(BorderStyle::Solid);
opt1->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
opt1->get_DefaultAppearance()->set_TextColor(System::Drawing::Color::get_Red());
System::SharedPtr<TextFragment> opt1Fragment = MakeObject<TextFragment>(u"Yes");
opt1->set_Caption(opt1Fragment);
System::SharedPtr<Border> opt2Border = MakeObject<Border>(opt2);
opt2->set_Border(opt2Border);
opt2->get_Border()->set_Width(1);
opt2->get_Border()->set_Style(BorderStyle::Solid);
opt2->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
opt2->get_DefaultAppearance()->set_TextColor(System::Drawing::Color::get_Red());
System::SharedPtr<TextFragment> opt2Fragment = MakeObject<TextFragment>(u"No");
opt2->set_Caption(opt2Fragment);
// Ajouter les options aux cellules du tableau
c1->get_Paragraphs()->Add(opt1);
c2->get_Paragraphs()->Add(opt2);
// Enregistrer le fichier de sortie
pdfDocument->Save(u"OutputDirectory\\Fillable_PDF_Form_Out.pdf");
Remplir un formulaire existant dans un fichier PDF à l’aide de C++
Dans cet exemple, nous utiliserons le fichier généré dans l’exemple précédent. Nous allons charger le fichier en utilisant la classe Document et remplir ses champs. Voici les étapes pour remplir les champs d’un formulaire PDF existant.
- Chargez le fichier PDF à l’aide de la classe Document.
- Récupérez les TextBoxFields à l’aide de la méthode Document->getForm()->idxget(System::String name).
- Définissez les valeurs des deux TextBoxFields à l’aide de la méthode TextBoxField->setValue(System::String value).
- Récupérez le RadioButtonField à l’aide de la méthode Document->getForm()->idxget(System::String name).
- Définissez la valeur de RadioButtonField à l’aide de la méthode RadioButtonField->setSelected(int32t value).
- Enregistrez le fichier de sortie à l’aide de la méthode Document->Save(System::String outputFileName).
L’exemple de code suivant montre comment remplir un formulaire existant dans un fichier PDF à l’aide de C++.
// Charger le fichier PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fillable_PDF_Form.pdf");
// Récupérer les champs de zone de texte
System::SharedPtr<TextBoxField> textBoxField1 = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));
System::SharedPtr<TextBoxField> textBoxField2 = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"Box1"));
// Définir la valeur des champs de la zone de texte
textBoxField1->set_Value(u"A quick brown fox jumped over the lazy dog.");
textBoxField2->set_Value(u"A quick brown fox jumped over the lazy dog.");
// Récupérer le champ du bouton radio
System::SharedPtr<RadioButtonField> radioField = System::DynamicCast<RadioButtonField>(pdfDocument->get_Form()->idx_get(u"radio"));
// Définir la valeur du champ du bouton radio
radioField->set_Selected(1);
// Enregistrer le fichier de sortie
pdfDocument->Save(u"OutputDirectory\\Fill_PDF_Form_Field_Out.pdf");
Modifier la valeur d’un champ de formulaire dans un formulaire PDF à l’aide de C++
Avec Aspose.PDF for C++, nous pouvons également modifier la valeur d’un champ précédemment rempli. Dans cet exemple, nous allons utiliser le fichier généré dans l’exemple précédent et modifier la valeur du premier TextBoxField. Pour y parvenir, veuillez suivre les étapes ci-dessous.
- Chargez le fichier PDF à l’aide de la classe Document.
- Récupérez le TextBoxField à l’aide de la méthode Document->getForm()->idxget(System::String name).
- Mettez à jour la valeur de TextBoxField à l’aide de la méthode TextBoxField->setValue(System::String value).
- Enregistrez le fichier de sortie à l’aide de la méthode Document->Save(System::String outputFileName).
L’exemple de code suivant montre comment modifier la valeur d’un champ dans un formulaire PDF à l’aide de C++.
// Charger le fichier PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// Récupérer le TextBoxField
System::SharedPtr<TextBoxField> textBoxField = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));
// Mettre à jour la valeur de TextBoxField
textBoxField->set_Value(u"Changed Value");
// Marquez le TextBoxField en lecture seule
textBoxField->set_ReadOnly(true);
// Enregistrer le fichier de sortie
pdfDocument->Save(u"OutputDirectory\\Modify_Form_Field_out.pdf");
Supprimer un champ de formulaire d’un formulaire PDF existant à l’aide de C++
L’API vous permet également de supprimer des champs de formulaire de formulaires PDF existants. Voici les étapes pour supprimer un champ de formulaire d’un formulaire PDF.
- Chargez le fichier PDF à l’aide de la classe Document.
- Supprimez le champ à l’aide de la méthode Document->getForm()->Delete(System::String fieldName).
- Enregistrez le fichier de sortie à l’aide de la méthode Document->Save(System::String outputFileName).
L’exemple de code suivant montre comment supprimer un champ de formulaire d’un formulaire PDF existant à l’aide de C++.
// Charger le fichier PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// Supprimer le champ
pdfDocument->get_Form()->Delete(u"nameBox1");
// Enregistrer le fichier de sortie
pdfDocument->Save(u"OutputDirectory\\Delete_Form_Field_out.pdf");
Obtenez une licence gratuite
Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.
Conclusion
Dans cet article, vous avez appris à créer des formulaires dans des fichiers PDF à l’aide de C++. De plus, vous avez appris à remplir et à modifier les champs existants dans les formulaires PDF. Vous avez également vu comment supprimer un champ de formulaire d’un formulaire PDF à l’aide de Aspose.PDF for C++. L’API fournit un tas de fonctionnalités supplémentaires pour travailler avec des fichiers PDF que vous pouvez explorer en détail en parcourant la documentation officielle. Si vous avez des questions concernant tout aspect de l’API, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.