Aspose.Slides FOSS pour C++ est une bibliothèque sous licence MIT pour travailler avec les fichiers PowerPoint .pptx. Intégrez‑la via CMake FetchContent et commencez immédiatement à créer, lire et modifier des présentations sans installer Microsoft Office ou tout runtime propriétaire.
La bibliothèque expose une API Presentation construite autour de Presentation, Slide, ShapeCollection, TextFrame, Paragraph et Portion, le modèle conceptuel utilisé par PowerPoint lui‑même. Ajoutez et supprimez des diapositives, insérez des AutoShapes, des Tables et des Connectors, formatez le texte au niveau des caractères avec du gras, de l’italique, la taille de police et la couleur, appliquez des remplissages unis ou dégradés, et ajoutez des effets visuels (ombre, lueur, flou, réflexion).
Les sémantiques RAII garantissent un nettoyage fiable des ressources : le destructeur Presentation libère automatiquement tout l’état interne. Les parties XML inconnues rencontrées lors du chargement sont conservées mot pour mot lors de l’enregistrement, de sorte que le round‑tripping ne détruit jamais le contenu que la bibliothèque ne comprend pas encore. La bibliothèque nécessite un compilateur compatible C++20. Pour des fonctionnalités supplémentaires, voir Aspose.Slides for C++ enterprise edition.
.pptx existants via Presentation() ou Presentation(path).SlideCollection avec add_empty_slide(), remove() et remove_at().ShapeType géométries via add_auto_shape().add_connector().NotesSlideManager.pres.comment_authors() et leurs commentaires associés.Portion individuels via PortionFormat.FillFormat et FillType.EffectFormat.ParagraphFormat et set_alignment().Aspose.Slides FOSS s’intègre via CMake FetchContent, donc aucun téléchargement manuel ou installation système n’est nécessaire. La bibliothèque se compile à partir du code source aux côtés de votre projet.
L’API reflète le modèle d’objet propre à PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), de sorte que toute personne familière avec le modèle d’objet PowerPoint peut utiliser la bibliothèque immédiatement. Elle est sous licence MIT, open source sur GitHub, et nécessite un compilateur compatible C++20.
RAII garantit que le destructeur Presentation libère toutes les ressources automatiquement lorsque l’objet sort de la portée. add_auto_shape() prend une énumération ShapeType, puis la position x/y et la largeur/hauteur en points — le text_frame de la forme fournit un accès pour définir le contenu texte.
include(FetchContent)
FetchContent_Declare(
aspose_slides_foss
GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
int main() {
Aspose::Slides::Foss::Presentation prs;
auto& slide = prs.slides()[0];
// Add a rectangle AutoShape
auto& shape = slide.shapes().add_auto_shape(
Aspose::Slides::Foss::ShapeType::RECTANGLE,
50, 50, 400, 150
);
shape.text_frame()->set_text("Hello, Aspose.Slides!");
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
return 0;
}
```cmake
include(FetchContent)
FetchContent_Declare(
aspose_slides_foss
GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
Le formatage du texte fonctionne au niveau Portion — la plus petite unité d’une séquence de caractères. Ouvrez le fichier enregistré, naviguez jusqu’à la première partie du premier paragraphe et définissez les propriétés de police directement. Le remplissage de la forme est indépendant : définissez le type de remplissage sur solide et attribuez une couleur.
#include <Aspose/Slides/Foss/presentation.h>
namespace asf = Aspose::Slides::Foss;
int main() {
asf::Presentation prs("output.pptx");
auto& shape = prs.slides()[0].shapes()[0];
auto& portion = shape.text_frame()
->paragraphs()[0].portions()[0];
// Bold, 18pt text
portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion.portion_format().set_font_height(18);
// Solid background fill on the shape
shape.fill_format().set_fill_type(asf::FillType::SOLID);
prs.save("formatted.pptx", asf::SaveFormat::PPTX);
return 0;
}
```cpp
#include <Aspose/Slides/Foss/presentation.h>
namespace asf = Aspose::Slides::Foss;
int main() {
asf::Presentation prs("output.pptx");
auto& shape = prs.slides()[0].shapes()[0];
auto& portion = shape.text_frame()
->paragraphs()[0].portions()[0];
// Bold, 18pt text
portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion.portion_format().set_font_height(18);
// Solid background fill on the shape
shape.fill_format().set_fill_type(asf::FillType::SOLID);
prs.save("formatted.pptx", asf::SaveFormat::PPTX);
return 0;
}
Il s’agit d’une bibliothèque C++ gratuite, sous licence MIT, permettant de créer, lire et modifier des présentations PowerPoint .pptx sans nécessiter Microsoft Office.
.pptx est le format de lecture/écriture pris en charge. L’exportation vers PDF, HTML, SVG ou images n’est pas disponible dans cette édition.
Non. Aspose.Slides FOSS est une bibliothèque C++ autonome sans dépendance à Microsoft Office, à l’automatisation COM ou à tout runtime propriétaire.
Utilisez CMake FetchContent pour intégrer la bibliothèque directement depuis GitHub. La bibliothèque nécessite un compilateur compatible C++20.
Oui. La bibliothèque prend en charge les effets d’ombre externe, de lueur, de flou et de réflexion sur tout objet de forme via l’API EffectFormat.
Oui. Le destructeur Presentation libère automatiquement tout l’état interne, ainsi aucune opération de nettoyage explicite n’est nécessaire.
Non. Les parties XML inconnues rencontrées lors du chargement sont conservées mot pour mot lors de l’enregistrement, de sorte que le contenu que la bibliothèque ne comprend pas encore n’est jamais perdu.
La bibliothèque est sous licence MIT et hébergée sur GitHub. Les rapports de bugs et les pull requests sont les bienvenus.