créer des présentations powerpoint C++

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

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.

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 :

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.

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 :

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.

Voir également