Introduction
Aspose.Slides FOSS for C++ (aspose_slides_foss) est une bibliothèque libre, open-source C++20 pour créer et manipuler les présentations PowerPoint de manière programmée. entièrement construit dans le C ++ natif avec aucune dépendance externe du temps de fonctionnement au-delà de CMake 3.20+, il donne aux développeurs un contrôle complet sur les fichiers PPTX sans nécessiter Microsoft Office ou tout logiciel propriétaire.
La bibliothèque est publiée sous la licence MIT, ce qui en fait une adaptation à des projets commerciaux et non-commerciaires. Aspose::Slides::Foss nomespace et fournit un modèle d’objet riche couvrant des présentations, des images, les formes, tables, cadres de texte, propriétés de document, commentaires et PPTX exportation.
Ce post passe par la surface de l’API cible : les classes et les méthodes que vous utilisez le plus souvent lors de la construction, du formatage et des présentations d’économie.
Ce qui est inclus
Présentation et gestion de la Slide
Le Presentation classe est le point d’entrée. Créer une nouvelle instance vous donne un slide par défaut qui est immédiatement prêt pour le contenu. Vous accéder des slides à travers la SlideCollection Retourné par slides(), qui soutient l’accès indexé, l’itération, la suppression et le re-ordre.
#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;
Presentation pres;
auto& slide = pres.slides()[0]; // first slide
// Work with the slide...
pres.save("output.pptx", SaveFormat::PPTX);
Formes et AutoShapes
Chaque écran expose une ShapeCollection Par son shapes() La collection fournit des méthodes de fabrication pour ajouter différents types de formes: add_auto_shape pour les formes géométriques standard (rectangles, ellipses, triangle), add_connector pour les connecteurs, add_table pour les tables, et add_picture_frame pour les images.
auto& slide = pres.slides()[0];
// Add a rectangle
auto& rect = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 100);
// Add an ellipse
auto& ellipse = slide.shapes().add_auto_shape(
ShapeType::ELLIPSE, 400, 50, 150, 150);
// Add a connector between shapes
auto& conn = slide.shapes().add_connector(
ShapeType::BENT_CONNECTOR3, 0, 0, 1, 1);
Le ShapeCollection Il soutient aussi size(), remove(), remove_at(), reorder(), index_of(),et clear() Pour gérer les formes après la création.
Textes et paragraphes de formatage
Les textes peuvent être conservés par TextFrame.Utiliser add_text_frame() sur un AutoShape pour ajouter du contenu texte, ou accéder au cadre existant par le biais de text_frame().Le texte est organisé en paragraphes, chacune contenant une ou plusieurs portions. BasePortionFormat La classe expose les propriétés de style des lettres, y compris le courageux, l’italien, le type sous-lignant, la capitalisation, strictough et la couleur des fonctions.
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 100, false);
shape.add_text_frame("Hello, world!");
auto text = shape.text_frame()->text(); // "Hello, world!"
Fill, Gradient et Effets visuels
Chaque forme fournit un FillFormat accessible par fill_format().Vous pouvez définir des remplissages solides, les gradients ou les modèles de remplies à travers le set_fill_type() Les gradients sont configurés à travers le GradientFormat objet, qui soutient les angles linéaires, la forme gradiente et les stops de couleur par le biais du GradientStopCollection.
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 150);
shape.fill_format().set_fill_type(FillType::GRADIENT);
auto& gf = shape.fill_format().gradient_format();
gf.set_gradient_shape(GradientShape::LINEAR);
gf.set_linear_gradient_angle(45);
gf.gradient_stops().add(0.0f, Color::blue);
gf.gradient_stops().add(1.0f, Color::red);
Le EffectFormat Classement (accédé par le biais de effect_format()(Accueil) : L’effet de l’écran est actif et chaque effet est activé par une méthode dédiée (enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()et configure par son objet retourné.
Tableau
Des tables sont créées avec add_table() sur la collection de formes. vous fournissez des largeurs de colonne et les hauteurs d’ordre en tant que vecteurs. Table Objet exposé rows() et columns() collections et individuelles Cell Objets supportant le contenu texte via TextFrame.
std::vector<double> col_widths = {100, 150, 200};
std::vector<double> row_heights = {40, 40, 40};
auto& table = slide.shapes().add_table(
50, 50, col_widths, row_heights);
// table.rows().size() == 3
// table.columns().size() == 3
Propriétés et commentaires de document
Le DocumentProperties classe vous permet de définir des métadonnées telles que le titre, l’auteur, le sujet, les mots-clés, la catégorie, numéro de révision et les timestamps.
Les commentaires sont gérés par CommentAuthorCollection et CommentCollection.Vous ajoutez des auteurs avec add_author(), puis ajouter des commentaires à des slides spécifiques dans des coordonnées spéciaux.
Presentation pres;
auto& author = pres.comment_authors().add_author("Alice", "A");
auto& slide = pres.slides()[0];
auto& comment = author.comments().add_comment(
"Review note", slide, PointF(2.0f, 3.0f), now);
Démarrage rapide
Construire de la source
La bibliothèque nécessite un CMake 3.20+ et un compilateur capable C++20. Clonnez le répertoire et construisez:
git clone https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
cd Aspose.Slides-FOSS-for-Cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
Exemple minimum
#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;
int main() {
Presentation pres;
auto& slide = pres.slides()[0];
// Add a shape with text
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 100, false);
shape.add_text_frame("Hello from Aspose.Slides FOSS!");
// Apply a solid fill
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(Color::blue);
// Save
pres.save("hello.pptx", SaveFormat::PPTX);
return 0;
}
Formats soutenus
Le SaveFormat enum définit tous les objectifs d’exportation. Les formats suivants sont confirmés dans le code source:
| Formats | Extension | Lire | Écrire |
|---|---|---|---|
| PPTX | .pptx | – | Oui |
| PPT | .Pt | – | Planifié |
| PPSX | .ppsx | – | Planifié |
| PPTM | .pptm | – | Planifié |
| PPSM | .PPSM | – | Planifié |
| POTX | .Le Potx | – | Planifié |
| POTM | .Le POTM | – | Planifié |
| POT | .Le Pot | – | Planifié |
| PPS | .pps | – | Planifié |
| ODP | .ODP | – | Planifié |
| OTP | .OTP | – | Planifié |
| FODP | .FODP | – | Planifié |
| – | Planifié | ||
| XPS | .xps | – | Planifié |
| HTML | .html | – | Planifié |
| HTML5 | .html | – | Planifié |
| TIFF | .TIFF | – | Planifié |
| GIF | .GIF | – | Planifié |
| SWF | .swf | – | Planifié |
| MD | .Md | – | Planifié |
| XML | .xml | – | Planifié |
Note : Actuellement, seuls les exportations PPTX sont mises en œuvre. d’autres valeurs de format existent dans le SaveFormat enum pour la compatibilité à l’avant mais ne sont pas encore fonctionnels. save() Le méthode produit toujours la sortie PPTX, quel que soit le paramètre du format.
Source ouverte et licence
Aspose.Slides FOSS for C++ is released under the MIT license. You can use it freely in personal projects, commercial applications, and redistributed libraries. There are no API keys, watermarks, or usage limits. The full source code is available on GitHub at HTTPS://github.com/aspose-slides-foss/Aspose.Slides - FOSS-for-Cpp.
Pour commencer
Prêt à intégrer Aspose.Slides FOSS dans votre projet C++? Voici les ressources clés:
- Documentaire: HTTPS://docs.aspose.org/slides/cpp/ pour les guides de développeur, les tutoriels et les aperçus conceptuels.
- Base de connaissances: HTTPS://kb.aspose.org/slides/cpp/ Pour les FAQ et comment-to articles couvrant des tâches communes.
- Le référencement API: HTTPS://reference.aspose.org/slides/cpp/ pour la documentation de classe par classe de l’API publique complète.