Insérer une image de texte XPS C++

Vous pouvez facilement créer, modifier ou manipuler des fichiers XPS. De plus, vous pouvez contrôler le contenu et sa position selon vos besoins. Vous pouvez insérer une image ou du texte dans des fichiers XPS par programmation à l’aide du langage C++. Explorons cette fonctionnalité en détail sous les rubriques suivantes :

Travailler avec du texte ou du contenu d’image dans des fichiers XPS - Installation de l’API

Vous pouvez ajouter du texte ou du contenu image dans des fichiers XPS dans des applications C++. Vous n’avez pas besoin de prendre en compte des détails mineurs sur le format de fichier du document car peu d’appels d’API peuvent faire le travail selon vos besoins. L’API Aspose.Page for C++ peut être configurée facilement soit en la téléchargeant depuis New Releases ou avec la commande d’installation NuGet ci-dessous :

PM> Install-Package Aspose.Page.Cpp

Ajouter du texte dans un fichier XPS à l’aide de C++

Le texte peut être utilisé dans le fichier XPS pour étiqueter certains dessins, images ou autres contenus. De même, vous pouvez également utiliser le texte comme filigrane pour le fichier. Vous devez suivre les étapes ci-dessous pour ajouter ou insérer du texte dans les fichiers XPS :

  1. Créer un nouveau Document XPS
  2. Créer un pinceau pour ajouter du texte
  3. Ajouter un glyphe au document
  4. Enregistrer le document XPS de sortie

Le code ci-dessous montre comment ajouter du texte dans un fichier XPS à l’aide de C++ :

// Créer un nouveau document XPS
auto doc = System::MakeObject<XpsDocument>();

//Créer un pinceau 
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());

//Ajouter un glyphe au document
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 300.f, 450.f, u"Hello World!");
glyphs->set_Fill(textFill);

// Enregistrer le document XPS résultant
doc->Save(RunExamples::outDir() + u"AddText_out.xps");

Ajouter du texte dans un fichier XPS à l’aide d’une chaîne Unicode en C++

Nous avons appris à ajouter une simple chaîne de texte à un fichier XPS. Continuons et considérons un scénario dans lequel vous devez ajouter une chaîne Unicode dans les fichiers XPS. Vous devez suivre les étapes ci-dessous pour ajouter du texte dans le fichier XPS, basé sur la chaîne Unicode :

  1. Créer un nouveau document XPS
  2. Ajouter du texte Unicode
  3. Enregistrer le document XPS de sortie

Le code suivant est basé sur ces étapes, qui montre comment ajouter du texte dans un fichier XPS à l’aide d’une chaîne Unicode en langage C++ :

// Créer un nouveau document XPS
auto doc = System::MakeObject<XpsDocument>();

// Ajouter du texte
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 20.0f, System::Drawing::FontStyle::Regular, 400.f, 200.f, u"++C. rof SPX.esopsA");
glyphs->set_BidiLevel(1);
glyphs->set_Fill(textFill);

// Enregistrer le document XPS résultant
doc->Save(RunExamples::outDir() + u"AddText_unicode.xps");

Insérer une image dans un document XPS à l’aide de C++

Les images peuvent contenir de nombreuses informations visuelles, c’est pourquoi l’API prend en charge l’insertion d’une image dans un fichier XPS dans vos applications C++. L’API Aspose.Page for C++ vous permet d’insérer des images ou des images dans des fichiers XPS en suivant les étapes ci-dessous :

  1. Créer un nouveau document XPS
  2. Charger l’image d’entrée
  3. Créer une matrice et ImageBrush
  4. Enregistrer le fichier XPS de sortie

L’exemple de code ci-dessous montre comment insérer une image dans un document XPS avec C++ :

// Créer un nouveau document XPS
System::SharedPtr<XpsDocument> doc = System::MakeObject<XpsDocument>();

// Ajouter une image
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));

// La création d'une matrice est facultative, elle peut être utilisée pour un positionnement correct
path->set_RenderTransform(doc->CreateMatrix(0.7f, 0.f, 0.f, 0.7f, 0.f, 20.f));

//Créer un pinceau d'image
path->set_Fill(doc->CreateImageBrush(RunExamples::dataDir() + u"QL_logo_color.tif", System::Drawing::RectangleF(0.f, 0.f, 258.24f, 56.64f), System::Drawing::RectangleF(50.f, 20.f, 193.68f, 42.48f)));

// Enregistrer le document XPS résultant
doc->Save(RunExamples::outDir() + u"AddImage_out.xps");

Insérer une image en mosaïque dans un fichier XPS à l’aide de C++

Nous avons appris la première étape de l’ajout ou de l’insertion d’une image dans un fichier XPS, passons à l’exemple connexe d’insertion d’une image en mosaïque dans un document XPS. Voici les étapes pour ajouter une image en mosaïque dans le fichier XPS :

  1. Créer un nouveau document XPS
  2. Ajouter ImageBrush rectangle rempli
  3. Ajouter une image en mosaïque
  4. Enregistrer le document XPS résultant

L’extrait de code suivant montre comment ajouter une image en mosaïque dans un fichier XPS à l’aide de C++ :

// Créer un nouveau document XPS
System::SharedPtr<XpsDocument> doc = System::MakeObject<XpsDocument>();

// Image de tuile
// Rectangle rempli par ImageBrush dans le coin supérieur droit ci-dessous
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 10,160 L 228,160 228,305 10,305"));
path->set_Fill(doc->CreateImageBrush(RunExamples::dataDir() + u"R08LN_NN.jpg", System::Drawing::RectangleF(0.f, 0.f, 128.f, 96.f), System::Drawing::RectangleF(0.f, 0.f, 64.f, 48.f)));
(System::DynamicCast<Aspose::Page::Xps::XpsModel::XpsImageBrush>(path->get_Fill()))->set_TileMode(Aspose::Page::Xps::XpsModel::XpsTileMode::Tile);
path->get_Fill()->set_Opacity(0.5f);

// Enregistrer le document XPS résultant
doc->Save(RunExamples::outDir() + u"AddTiledImage_out.xps");

Conclusion

Dans cet article, vous avez appris à insérer ou à ajouter du texte ou une image dans des fichiers XPS à l’aide du langage C++. Cette fonctionnalité peut être utile dans des scénarios tels que lorsque vous devez ajouter un filigrane dans des documents XPS ou ajouter un tampon selon vos besoins. De même, de nombreuses autres fonctionnalités intéressantes sont prises en charge pour le format de fichier XPS. Vous pouvez en savoir plus en visitant la Documentation API, ou vous pouvez également discuter avec nous sur Free Support Forum. Nous sommes impatients de vous contacter !

Voir également