Avec la puissance d’Internet, tout est devenu numérique et les systèmes sans papier sont devenus populaires. Les documents numériques, c’est-à-dire les PDF, font partie des éléments constitutifs des systèmes sans papier qui ont facilité la vie en offrant des fonctionnalités de génération et de traitement automatisés. La plupart des entreprises utilisent l’automatisation des documents PDF pour générer dynamiquement des rapports, des reçus, des factures et d’autres documents commerciaux. Par conséquent, dans cet article, je vais montrer comment intégrer les fonctionnalités d’automatisation PDF dans les applications basées sur C++ et générer des fichiers PDF à l’aide de C++.

Bibliothèque PDF C++

Pour créer des fichiers PDF, nous utiliserons l’API Aspose.PDF for C++ qui est une bibliothèque C++ native pour travailler avec des documents PDF par programme. Il vous permet de créer des documents PDF interactifs avec le support d’une variété d’éléments PDF. Aspose.PDF for C++ est disponible sur NuGet ainsi que dans la section Téléchargements d’Aspose.

Créer un fichier PDF en C++

Tout d’abord, nous allons créer un simple fichier PDF et ajouter du texte à la première page sous la forme d’un paragraphe. Voici les étapes à suivre :

  • Créez un objet Document.
  • Ajoutez une page à PageCollection du document.
  • Obtenez le paragraphe de la page.
  • Créez un objet TextFragment et ajoutez-le au paragraphe.
  • Enregistrez le document PDF.

L’exemple de code suivant montre comment créer un document PDF en C++.

// Créer un document
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// La numérotation des pages commence à partir de 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();	
// Créer un fragment de texte
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// Définir l'état du texte
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// Ajouter au paragraphe
paragraps->Add(text);
// Ajouter du texte au paragraphe
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// Enregistrer le fichier PDF
doc->Save(u"Example1.pdf");

Production

Créer des fichiers PDF en C++

Créer un fichier PDF à l’aide de TextBuilder en C++

Dans cette section, je vais vous montrer comment utiliser la classe TextBuilder pour ajouter divers fragments de texte et paragraphes sur la page. De plus, dans cet exemple, vous apprendrez à définir la position du fragment de texte sur la page. Voici les étapes pour effectuer cette opération :

  • Créez un objet Document.
  • Ajouter une page au document.
  • Créez un objet TextBuilder.
  • Créez un TextFragment et ajoutez son texte.
  • Définissez la position du TextFragment.
  • Ajoutez TextFragment à l’aide de TextBuilder.
  • Enregistrer le document PDF.

L’exemple de code suivant montre comment créer un PDF à l’aide de TextBuilder en C++.

// Créer un objet Document
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Créer TextBuilder
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// Créer un fragment de texte
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// Ajouter un fragment de texte
tb->AppendText(text);
// Créer un autre TextFragment
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// Créer un autre TextFragment
text = MakeObject<TextFragment>(u"It demonstrates how to use TextBuilder to append text into PDF file.");
text->set_Position(MakeObject<Position>(200, 700));
tb->AppendText(text);
// Créer un paragraphe de texte
auto par = MakeObject<TextParagraph>();
par->set_Position(MakeObject<Position>(250,650));
par->AppendLine(u"New paragraph");
par->AppendLine(u"Line 2");
par->AppendLine(u"Line 3");
tb->AppendParagraph(par);
// Enregistrer le document PDF
doc->Save(u"Created PDF.pdf");

Production

API PDF C++

Créer un fichier PDF avec image en C++

Vous pouvez également créer et ajouter des images aux documents PDF en utilisant Aspose.PDF for C++. Voici les étapes pour effectuer cette opération :

  • Créez un objet Document.
  • Ajouter une page au document.
  • Créez une image à ajouter.
  • Ajoutez l’image au fichier PDF.
  • Enregistrez le fichier PDF.

L’exemple de code suivant montre comment créer et ajouter une image à un document PDF en C++.

// Créer un objet Document
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// Créer une image
auto stream = MakeObject<IO::MemoryStream>();
SharedPtr<Bitmap> bitmap = MakeObject<Bitmap>(200, 200);
SharedPtr<Graphics> graphics = Graphics::FromImage(bitmap);
graphics->Clear(System::Drawing::Color::get_Yellow());
graphics->FillRectangle(Brushes::get_Blue(), System::Drawing::Rectangle(0, 0, 200, 100));
bitmap->Save(stream, Imaging::ImageFormat::get_Bmp());
// Créer un rectangle
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rect = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);
// Ajouter une image au PDF
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// Enregistrer le document PDF
doc->Save(u"Created PDF.pdf");

Production

Bibliothèque PDF C++

Créer un fichier PDF avec des pièces jointes en C++

Le format PDF permet également d’ajouter des pièces jointes au document. Il existe une variété de formats de fichiers qui peuvent être ajoutés en pièce jointe au fichier PDF. Voici les étapes pour intégrer un fichier au format PDF à l’aide d’Aspose.PDF for C++ :

  • Charger un fichier à joindre dans SharedPtr .
  • Créez un objet de la classe Document.
  • Intégrez le fichier au document.
  • Enregistrez le fichier PDF.

L’exemple de code suivant montre comment ajouter une pièce jointe au document PDF en C++.

// Créer un fichier texte
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// Ajouter une pièce jointe à la collection de pièces jointes du document
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// Ajouter une page au PDF
doc->get_Pages()->Add();	 
// Enregistrer le document PDF
doc->Save(u"Created PDF.pdf");

Production

Générer un PDF en C++

En savoir plus sur Aspose.PDF for C++

Vous pouvez en savoir plus sur Aspose.PDF for C++ à partir de la documentation et du code source exemples.

Voir également