MS PowerPoint est une application riche en fonctionnalités qui vous permet de créer des présentations attrayantes contenant du texte, des graphiques, des animations, des graphiques et plusieurs autres éléments. Dans cet article, vous apprendrez à implémenter les fonctionnalités d’automatisation PowerPoint de base dans les applications C++. En particulier, vous apprendrez à créer des présentations PowerPoint et à ajouter du texte, des images, des graphiques et des tableaux aux diapositives à l’aide de C++.
- API PowerPoint C++
- Créer une présentation PowerPoint en C++
- Ajouter des diapositives à une présentation
- Ajouter du texte à une diapositive PowerPoint
- Créer un tableau dans la présentation
- Créer un graphique dans la présentation
- Ouvrir une présentation PowerPoint existante
- Obtenez une licence gratuite
API PowerPoint C++
Aspose.Slides for C++ est conçu pour automatiser les fonctionnalités de manipulation de présentation PowerPoint dans les applications C++. À l’aide de l’API, vous pouvez créer, modifier ou convertir les présentations PowerPoint de manière transparente. Vous pouvez télécharger le package complet des fichiers API ou l’obtenir à partir de NuGet.
Créer une présentation PowerPoint en C++
Commençons par créer une présentation PowerPoint vide en utilisant Aspose.Slides for C++. Voici les étapes pour effectuer cette opération.
- Créez un objet de la classe Presentation.
- Enregistrez la présentation en utilisant la méthode Presentation->Save(String, SaveFormat::Pptx).
L’exemple de code suivant montre comment créer une présentation PowerPoint à l’aide de C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// Chemin d'accès au répertoire des documents.
const String outPath = u"../out/SampleChartresult.pptx";
//Instancier la classe de présentation qui représente le fichier PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Ajouter une forme automatique de type ligne
slide->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Line, 50.0, 150.0, 300.0, 0.0);
//Enregistrement de la présentation
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Ajouter une diapositive à une présentation en C++
Une fois que vous avez créé la présentation PowerPoint, vous pouvez y insérer des diapositives. Voici les étapes pour ajouter des diapositives à une présentation PowerPoint :
- Créez un objet de la classe Presentation.
- Obtenez des diapositives dans l’objet ISlideCollection à l’aide de la méthode Presentation->getSlides().
- Ajoutez une diapositive à l’aide de la méthode ISlideCollection->AddEmptySlide().
- Enregistrez la présentation en utilisant la méthode Presentation->Save(String, SaveFormat::Pptx).
L’exemple de code suivant montre comment ajouter des diapositives à une présentation PowerPoint à l’aide de C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// Chemin d'accès au répertoire des documents.
const String outPath = u"../templates/AddSlides.pptx";
// Instancier la classe Presentation qui représente le fichier de présentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Instancier la classe SlideCollection
SharedPtr<ISlideCollection> slds = pres->get_Slides();
for (int i = 0; i < pres->get_LayoutSlides()->get_Count(); i++)
{
// Ajouter une diapositive vide à la collection Slides
slds->AddEmptySlide(pres->get_LayoutSlides()->idx_get(i));
}
// Enregistrez le fichier PPTX sur le disque
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Pour en savoir plus sur la manipulation des diapositives, consultez Ajouter, formater et manipuler des diapositives.
Ajouter du texte à une diapositive PowerPoint à l’aide de C++
Ajoutons maintenant du texte à une diapositive dans la présentation PowerPoint. Pour cela, vous devez insérer une zone de texte dans la diapositive. Vous trouverez ci-dessous les étapes pour effectuer cette opération.
- Créez une nouvelle présentation ou chargez-en une existante à l’aide de la classe Presentation.
- Obtenez la référence de la diapositive dans l’objet ISlide à l’aide de la méthode Presentation->getSlides()->idxget(int).
- Ajoutez un rectangle à la diapositive à l’aide de la méthode ISlide->getShapes()->AddAutoShape(ShapeType::Rectangle, int, int, int, int) et récupérez sa référence dans l’objet IAutoShape.
- Ajoutez un cadre de texte à l’aide de la méthode IAutoShape->AddTextFrame(u" “).
- Obtenez le cadre de texte en utilisant IAutoShape->getTextFrame() dans l’objet ITextFrame.
- Obtenez le paragraphe en utilisant ITextFrame->getParagraphs()->idxget(0) dans l’objet IParagraph.
- Accéder à la partie du paragraphe en utilisant IParagraph->getPortions()->idxget(0) dans l’objet IPortion.
- Définissez le texte à l’aide de la méthode IPortion->setText(u"Aspose TextBox”).
- Enregistrez la présentation en utilisant la méthode Presentation->Save(String, SaveFormat::Pptx).
L’exemple de code suivant montre comment ajouter du texte aux diapositives d’une présentation PowerPoint à l’aide de C++.
// Chemin d'accès au répertoire des documents.
const String outPath = u"../out/TextBoxOnSlideProgram_out.pptx";
const String templatePath = u"../templates/DefaultFonts_out.pptx";
// Chargez la présentation souhaitée
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Accéder à la première diapositive
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Ajouter une forme automatique de type Rectangle
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
// Ajouter TextFrame au rectangle
ashp->AddTextFrame(u" ");
// Accéder au cadre de texte
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame();
// Créer l'objet Paragraph pour le bloc de texte
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);
// Créer un objet Portion pour le paragraphe
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose TextBox");
// Enregistrer PPTX sur le disque
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Pour en savoir plus sur la manipulation de texte dans les présentations, consultez Ajouter, formater et manipuler du texte.
Créer un tableau dans la présentation à l’aide de C++
Voici les étapes pour ajouter un tableau dans la diapositive d’une présentation PowerPoint à l’aide de Aspose.Slides for C++.
- Créez une instance d’une classe Presentation.
- Obtenir la référence d’une diapositive dans un objet ISlide.
- Définissez des tableaux de colonnes et de lignes en fournissant la largeur.
- Ajoutez un tableau à la diapositive à l’aide de la méthode ISlide->getShapes()->AddTable().
- Parcourez chaque cellule pour appliquer la mise en forme aux bordures supérieure, inférieure, droite et gauche.
- Fusionnez les cellules si nécessaire.
- Accédez au cadre de texte d’une cellule pour ajouter du texte.
- Enregistrez la présentation en tant que fichier PPTX.
L’exemple de code suivant montre comment créer un tableau dans une présentation PowerPoint à l’aide de C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// Chemin d'accès au répertoire des documents.
const String outPath = u"../out/TableFromScratch_out.pptx";
// Chargez la présentation souhaitée
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Accéder à la première diapositive
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);
// Définir des colonnes avec des largeurs et des lignes avec des hauteurs
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);
// Ajouter une forme de tableau à la diapositive
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);
// Définir le format de bordure pour chaque cellule
for (int x = 0; x < table->get_Rows()->get_Count(); x++)
{
SharedPtr<IRow> row = table->get_Rows()->idx_get(x);
for (int y = 0; y < row->get_Count(); y++)
{
SharedPtr<ICell> cell = row->idx_get(y);
cell->get_BorderTop()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderTop()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderTop()->set_Width(5);
cell->get_BorderBottom()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderBottom()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderBottom()->set_Width(5);
cell->get_BorderLeft()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderLeft()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderLeft()->set_Width(5);
cell->get_BorderRight()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderRight()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderRight()->set_Width(5);
}
}
// Fusion des cellules (1, 1) x (2, 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);
// Fusionner les cellules (1, 2) x (2, 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);
// Enregistrer PPTX sur le disque
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Pour en savoir plus sur la manipulation des tableaux, consultez Ajouter, mettre à jour et manipuler des tableaux.
Créer un graphique dans une présentation à l’aide de C++
Aspose.Slides for C++ prend en charge différents types de graphiques tels que dispersés, treemap, histogramme et etc. Pour la démonstration, créons un graphique normal. Vous trouverez ci-dessous les étapes pour effectuer cette opération.
- Créez une instance de la classe Presentation.
- Obtenez la référence d’une diapositive sur laquelle vous souhaitez ajouter le graphique.
- Ajoutez un graphique avec les données par défaut ainsi que le type souhaité à l’aide de la méthode ISlide->getShapes()->AddChart().
- Récupère la référence du graphique dans l’objet IChart.
- Effacez les données du graphique et ajoutez de nouvelles séries et catégories.
- Ajoutez de nouvelles données de graphique pour les séries de graphiques.
- Définissez la couleur de remplissage des séries de graphiques.
- Ajoutez des étiquettes de série de graphiques.
- Enregistrez la présentation en tant que fichier PPTX.
L’exemple de code suivant montre comment insérer un graphique dans une présentation PowerPoint à l’aide de C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// Chemin d'accès au répertoire des documents.
const String outPath = u"../out/NormalCharts_out.pptx";
//Instancier la classe de présentation qui représente le fichier PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Accéder à la première diapositive
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Ajouter un graphique avec des données par défaut
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);
// Définition de l'index de la feuille de données du graphique
int defaultWorksheetIndex = 0;
// Obtenir la feuille de calcul des données du graphique
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();
// Tableau de réglage Titre
chart->get_ChartTitle()->AddTextFrameForOverriding(u"Sample Title");
chart->get_ChartTitle()->get_TextFrameForOverriding()->get_TextFrameFormat()->set_CenterText ( NullableBool::True);
chart->get_ChartTitle()->set_Height(20);
chart->set_HasTitle( true);
// Supprimer les séries et catégories générées par défaut
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();
int s = chart->get_ChartData()->get_Series()->get_Count();
s = chart->get_ChartData()->get_Categories()->get_Count();
// Maintenant, Ajout d'une nouvelle série
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 2, ObjectExt::Box<System::String>(u"Series 2")), chart->get_Type());
// Ajouter des catégories
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 1, 0, ObjectExt::Box<System::String>(u"Caetegoty 1")));
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 2, 0, ObjectExt::Box<System::String>(u"Caetegoty 2")));
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 3, 0, ObjectExt::Box<System::String>(u"Caetegoty 3")));
// Prendre la première série de graphiques
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);
// Remplir maintenant les données de la série
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<double>(20)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(50)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(30)));
// Définition de la couleur de remplissage pour les séries
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
// Prendre la deuxième série de graphiques
series = chart->get_ChartData()->get_Series()->idx_get(1);
// Remplir maintenant les données de la série
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 1, 2, ObjectExt::Box<double>(30)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(10)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box<double>(60)));
// Définition de la couleur de remplissage pour les séries
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());
// La première étiquette affichera le nom de la catégorie
SharedPtr<IDataLabel> lbl = series->get_DataPoints()->idx_get(0)->get_Label();
lbl->get_DataLabelFormat()->set_ShowCategoryName(true);
lbl = series->get_DataPoints()->idx_get(1)->get_Label();
lbl->get_DataLabelFormat()->set_ShowSeriesName (true);
// Afficher la valeur pour la troisième étiquette
lbl = series->get_DataPoints()->idx_get(2)->get_Label();
lbl->get_DataLabelFormat()->set_ShowValue (true);
lbl->get_DataLabelFormat()->set_ShowSeriesName(true);
lbl->get_DataLabelFormat()->set_Separator (u"/");
// Écrire le fichier de présentation sur le disque
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
En savoir plus sur la manipulation des graphiques dans Ajouter, formater et manipuler des graphiques.
Ouvrir une présentation PowerPoint en C++
Vous pouvez également ouvrir une présentation PowerPoint existante afin d’en modifier le contenu. Pour cela, vous pouvez suivre les étapes ci-dessous :
- Chargez le fichier PPTX à l’aide de la classe Presentation en fournissant le nom du fichier.
- Mettre à jour le contenu de la présentation.
- Enregistrez le fichier mis à jour à l’aide de la méthode Presentation->Save(String, SaveFormat).
L’exemple de code suivant montre comment ouvrir une présentation PowerPoint existante à l’aide de C++.
// Le chemin d'accès au répertoire des documents
const String templatePath = u"../templates/AccessSlides.pptx";
// Instancier la classe de présentation qui représente le fichier PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Imprimer le nombre de diapositives
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());
Obtenez une licence gratuite
Vous pouvez obtenir une licence temporaire gratuite afin d’essayer l’API sans limitations d’évaluation.
Conclusion
Dans cet article, vous avez appris à créer des présentations PowerPoint à partir des applications C++. Le guide étape par étape et les exemples de code ainsi que les références de l’API ont montré comment créer une présentation à partir de zéro et y insérer des diapositives, du texte, des tableaux et des graphiques. Vous pouvez en savoir plus sur l’API à l’aide de la documentation.