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 .pptx fichier, 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’un Presentation.
  • AutoShapes, Tableaux et Connecteurs: Insérer des formes via slide.shapes().add_auto_shape(), données tabulaires via slide.shapes().add_table(), et connecteurs visuels entre les formes via slide.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 via FillType::SOLID et ColorFormat.
  • Types de remplissage: Appliquer FillType::SOLID, Gradient, Pattern, ou Picture remplissages à 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.

Voir aussi