Aspose.Page for C++ est un ajout précieux à Aspose.Page Product Family qui est développé pour la manipulation de documents PostScript (PS/EPS) et XPS à l’aide de C++. Aspose.Page for C++ est une bibliothèque C++ native permettant de créer de nouveaux fichiers XPS ainsi que de modifier et de convertir par programme les documents PostScript et XPS existants. L’API vous permet également de travailler avec les pages et les éléments tels que les canevas et les glyphes dans les documents XPS. De plus, il prend en charge la conversion des documents en images PDF et raster. Cet article montre comment effectuer les opérations suivantes liées aux documents XPS à l’aide d’Aspose.Page for C++.
- Créer un nouveau document XPS en C++
- Modifier un document XPS existant en C++
- Ajouter une page ou un document à un document XPS en C++
Installation de l’API XPS pour C++
Aspose.Page for C++ est hébergé sur NuGet et disponible sous forme de binaries téléchargeables. Le package téléchargeable contient également une application console C++ contenant le code source des exemples de base.
Créer un document XPS en C++
Voici les étapes simples pour créer un document XPS contenant du texte et une image à l’aide d’Aspose.Page for C++.
- Créez un objet de la classe XpsDocument.
- Ajoutez du texte et une image à l’aide des objets XpsGlyphs et XpsPath respectivement.
- Enregistrez le document à l’aide de la méthode Enregistrer.
L’exemple de code suivant montre comment créer un document XPS en C++.
// Créer un nouvel objet XpsDocument
auto doc = System::MakeObject<XpsDocument>();
// Ajouter une image
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 30,20 l 450.24,0 0,150.64 -350.24,0 Z"));
// Créez une matrice qui 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(u"QL_logo_color.tif", System::Drawing::RectangleF(0.f, 0.f, 450.24f, 150.64f), System::Drawing::RectangleF(50.f, 20.f, 450.68f, 150.48f)));
// Texte en pied de page
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 18.0f, System::Drawing::FontStyle::Regular, 40.f, 1015.f, u"Copyright © 2006 QualityLogic, Inc.");
glyphs->set_Fill(textFill);
glyphs = doc->AddGlyphs(u"Arial", 15.0f, System::Drawing::FontStyle::Regular, 475.f, 1003.f, u"For information on QualityLogic XPS test products,");
glyphs->set_Fill(textFill);
// Enregistrer sous XPS
doc->Save(u"Create-XPS.xps");
Production
Modifier un document XPS en C++
Voici les étapes pour modifier un document XPS existant :
- Créez un objet de la classe XpsDocument et initialisez-le avec le chemin du document XPS.
- Accédez aux éléments du document à l’aide de l’objet XpsDocument.
- Enregistrez le document mis à jour à l’aide de la méthode Enregistrer.
L’exemple de code suivant montre comment modifier un document XPS existant en C++.
// Charger le document XPS
auto doc = System::MakeObject<XpsDocument>(u"Created-XPS.xps");
// Ajouter une page vide à la fin de la liste des pages
doc->AddPage();
// Insérer une page vide au début de la liste des pages
doc->InsertPage(1, true);
// Enregistrer le fichier XPS
doc->Save(u"Updated-XPS.xps");
Ajouter une page et un document à XPS en C++
Aspose.Page for C++ vous permet également d’ajouter des pages ainsi que plusieurs documents dans un document XPS. Voici les étapes pour créer un nouveau document XPS et ajouter une page et un document supplémentaires.
- Créez un objet de la classe XpsDocument.
- Utilisez les méthodes AddPage et AddDocument pour ajouter respectivement une page et un document.
- Utilisez la méthode SelectActiveDocument pour sélectionner le document actif à traiter.
- Ajoutez du texte ou une image au document.
- Enregistrez le document.
L’exemple de code suivant montre comment ajouter des pages et des documents supplémentaires à XPS à l’aide de C++.
// Nouveau document (1 document fixe avec 1 page de taille par défaut)
auto doc = System::MakeObject<XpsDocument>();
// Ajouter la 2ème page sur le 1er document et définir comme actif
doc->AddPage();
// Ajouter 2ème document avec 1 page (3ème page dans le fichier)
doc->AddDocument(false);
// La 2e page du 1er document est toujours active
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 200.f, 500.f, u"Text on Page 2 (Document 1),");
glyphs->set_Fill(textFill);
// Activer le 2ème document
doc->SelectActiveDocument(2);
glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 200.f, 500.f, u"Text on Document 2 (Page #3 in file),");
glyphs->set_Fill(textFill);
// Enregistrer le fichier XPS
doc->Save(u"Create-XPS.xps");
En savoir plus sur Aspose.Page for C++
Vous pouvez en savoir plus sur Aspose.Page for C++ en utilisant la documentation et les exemples de code source disponibles sur GitHub.