1. Produits
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS pour C++

Créez, lisez et modifiez des présentations PowerPoint depuis C++ — gratuit et open-source, aucune dépendance à Office requise.

Bibliothèque C++ open-source pour les présentations PowerPoint

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.

API de présentation et de diapositive

  • Créer et ouvrir PPTX: Créez de nouvelles présentations ou ouvrez des fichiers .pptx existants via Presentation() ou Presentation(path).
  • Ajouter et supprimer des diapositives: Gérer programmaticalement le SlideCollection avec add_empty_slide(), remove() et remove_at().
  • AutoShapes: Insérez des rectangles, des ellipses, des lignes et d’autres ShapeType géométries via add_auto_shape().
  • Tables et connecteurs: Ajoutez des formes de tableau structurées et des lignes de connexion entre les formes via add_connector().
  • Notes du présentateur : Lire et écrire les notes du présentateur par diapositive via NotesSlideManager.
  • Commentaires en fil: Accédez aux fils de commentaires en itérant pres.comment_authors() et leurs commentaires associés.

Où Aspose.Slides FOSS peut être utilisé

  • Génération de rapports: Créez des présentations de diapositives personnalisées à partir de sources de données sans Office.
  • Automatisation de modèles : Remplissez les modèles PPTX avec du contenu dynamique dans les pipelines CI/CD.
  • Migration de contenu: Lire les présentations existantes et restructurer ou re‑styler les diapositives.
  • Systèmes embarqués: Traiter les fichiers PPTX dans des environnements où les performances sont critiques ou les ressources limitées.
  • Traitement par lots: Appliquer des modifications de formatage uniformes à de grandes bibliothèques de présentations.

Mise en forme du texte et effets visuels

  • Mise en forme au niveau des caractères : Appliquer le gras, l’italique, la taille de police et la couleur aux objets Portion individuels via PortionFormat.
  • Remplissages plein et dégradé: Définissez le remplissage de la forme sur une couleur unie ou un dégradé linéaire à plusieurs arrêts en utilisant FillFormat et FillType.
  • Effets d’ombre et de lueur: Appliquez une ombre externe, une lueur, un flou et une réflexion à n’importe quelle forme via EffectFormat.
  • Alignement des paragraphes : Définissez l’alignement à gauche, centré, à droite ou justifié par paragraphe à l’aide de ParagraphFormat et set_alignment().
  • Round-trip safe: Les parties inconnues XML sont conservées verbatim lors du réenregistrement.

Expérience développeur

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.

Créer une présentation et ajouter une forme

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)
 

Formater le texte et appliquer un effet de remplissage

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;
}
 

Foire aux questions

Qu’est-ce que Aspose.Slides FOSS pour C++ ?

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.

Quels formats de fichier sont pris en charge ?

.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.

Cela nécessite-t-il Microsoft Office ou PowerPoint ?

Non. Aspose.Slides FOSS est une bibliothèque C++ autonome sans dépendance à Microsoft Office, à l’automatisation COM ou à tout runtime propriétaire.

Comment l’installer ?

Utilisez CMake FetchContent pour intégrer la bibliothèque directement depuis GitHub. La bibliothèque nécessite un compilateur compatible C++20.

Puis-je appliquer des effets visuels comme l’ombre et la lueur ?

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.

La bibliothèque utilise-t-elle RAII pour la gestion des ressources ?

Oui. Le destructeur Presentation libère automatiquement tout l’état interne, ainsi aucune opération de nettoyage explicite n’est nécessaire.

Le round‑trip d’un PPTX détruira-t-il le contenu inconnu ?

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.

Où puis‑je trouver le code source ?

La bibliothèque est sous licence MIT et hébergée sur GitHub. Les rapports de bugs et les pull requests sont les bienvenus.

  

Ressources de support et d'apprentissage

 Français