Introduction
Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx fichiers en C++ natif, sans dépendance à Microsoft Office ni à aucun runtime propriétaire.
La bibliothèque est conçue pour les développeurs qui doivent générer ou manipuler des fichiers de présentation de manière programmatique : automatiser des diaporamas à partir de données, extraire le texte et les métadonnées des fichiers PPTX téléchargés, créer des pipelines de reporting basés sur des présentations, ou intégrer la création de présentations dans des applications de bureau et serveur. Parce que aspose_slides_foss est construit avec CMake, il se compile et se déploie sous Windows, macOS et Linux.
Fonctionnalités clés
- Prise en charge complète du PPTX en aller‑retour: Ouvrir n’importe quel
.pptxfichier, modifier son contenu et le sauvegarder sans perdre les parties XML inconnues que la bibliothèque ne comprend pas encore. - Gestion des diapositives: Ajouter, supprimer et parcourir les diapositives avec
prs.slides(); la présentation commence avec une diapositive vierge après la construction d’unPresentation. - AutoShapes, Tableaux et Connecteurs: Insérer des formes via
slide.shapes().add_auto_shape(), données tabulaires viaslide.shapes().add_table(), et connecteurs visuels entre les formes viaslide.shapes().add_connector(). - Mise en forme de texte enrichi: Formater le texte au niveau des caractères avec
PortionFormat: taille de police, gras, italique, souligné et couleur ARGB viaFillType::SOLIDetColorFormat. - Types de remplissage: Appliquer
FillType::SOLID,Gradient,Pattern, ouPictureremplissages à n’importe quelle forme. - Effets visuels: Ombre externe, lueur, bord doux, flou, réflexion et ombre interne via
shape.effect_format(). - 3D formatting: Biseau, caméra, système d’éclairage, matériau et profondeur d’extrusion via
shape.three_d_format(). - Notes du présentateur: Attacher le texte des notes à chaque diapositive via
notes_slide_manager().add_notes_slide(). - Commentaires en fil de discussion: Ajouter des commentaires avec les métadonnées de l’auteur et la position de la diapositive.
- Images intégrées: Intégrer depuis un chemin de fichier, un tampon mémoire ou un flux.
- Propriétés du document: Lire et écrire les propriétés de base, d’application et personnalisées.
Premiers pas
Ajoutez la bibliothèque via CMake. Un compilateur C++17 est requis.
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)
target_link_libraries(your_target PRIVATE aspose_slides_foss)
Créez votre première présentation avec une forme et enregistrez‑la :
#include <Aspose/Slides/Foss/presentation.h>
int main() {
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 400, 120
);
shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
prs.save("hello.pptx", SaveFormat::PPTX);
return 0;
}
Le Presentation Le destructeur libère toutes les ressources internes automatiquement lorsqu’il sort de la portée.
Exemple de mise en forme du texte
#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
auto& fmt = shape.text_frame()->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(28);
fmt.set_font_bold(NullableBool::TRUE);
fmt.fill_format().set_fill_type(FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(Color::from_argb(255, 0, 70, 127));
prs.save("formatted.pptx", SaveFormat::PPTX);
Limitations actuelles
Les zones suivantes lèvent des exceptions dans cette version :
- Graphiques, SmartArt et objets OLE
- Animations et transitions de diapositives
- Exportation vers PDF, HTML, SVG ou formats d’image
- Hyperliens, paramètres d’action, macros VBA et signatures numériques
Les parties XML inconnues rencontrées lors du chargement sont conservées mot pour mot lors de l’enregistrement, de sorte que les fichiers PPTX produits par d’autres outils sont conservés sans problème lors d’un aller‑retour.