creare presentazioni PowerPoint C++

MS PowerPoint è un’applicazione ricca di funzionalità che ti consente di creare presentazioni accattivanti con testo, grafica, animazioni, grafici e molti altri elementi. In questo post imparerai come implementare le funzionalità di automazione di base di PowerPoint all’interno delle applicazioni C++. In particolare, imparerai come creare presentazioni PowerPoint e aggiungere testo, immagini, grafici e tabelle alle diapositive utilizzando C++.

API C++ PowerPoint

Aspose.Slides for C++ è progettato per automatizzare le funzionalità di manipolazione delle presentazioni di PowerPoint all’interno delle applicazioni C++. Utilizzando l’API, puoi creare, modificare o convertire le presentazioni PowerPoint senza problemi. Puoi scaricare il pacchetto completo dei file API o ottenerlo da NuGet.

Crea una presentazione PowerPoint in C++

Iniziamo creando una presentazione PowerPoint vuota usando Aspose.Slides per C++. Di seguito sono riportati i passaggi per eseguire questa operazione.

Nell’esempio di codice seguente viene illustrato come creare una presentazione di PowerPoint utilizzando C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// Il percorso della directory dei documenti.
	const String outPath = u"../out/SampleChartresult.pptx";

	//Istanziare la classe Presentation che rappresenta il file PPTX
	SharedPtr<Presentation> pres = MakeObject<Presentation>();
	
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// Aggiungi una forma automatica di linea di tipo
	slide->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Line, 50.0, 150.0, 300.0, 0.0);
	
	//Salvataggio della presentazione
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Aggiungi diapositiva a una presentazione in C++

Dopo aver creato la presentazione PowerPoint, puoi inserire le diapositive al suo interno. Di seguito sono riportati i passaggi per aggiungere diapositive a una presentazione PowerPoint:

Nell’esempio di codice seguente viene illustrato come aggiungere diapositive a una presentazione di PowerPoint usando C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// Il percorso della directory dei documenti.
	const String outPath = u"../templates/AddSlides.pptx";

	// Istanziare la classe Presentation che rappresenta il file di presentazione
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	// Istanziare SlideCollection cals
	SharedPtr<ISlideCollection> slds = pres->get_Slides();

	for (int i = 0; i < pres->get_LayoutSlides()->get_Count(); i++)
	{
		// Aggiungi una diapositiva vuota alla raccolta Presentazioni
		slds->AddEmptySlide(pres->get_LayoutSlides()->idx_get(i));

	}

	// Salva il file PPTX sul disco
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Per ulteriori informazioni sulla manipolazione delle diapositive, visita Aggiunta, formattazione e manipolazione delle diapositive.

Aggiungi testo a una diapositiva di PowerPoint usando C++

Ora aggiungiamo del testo a una diapositiva nella presentazione di PowerPoint. Per questo, è necessario inserire una casella di testo nella diapositiva. Di seguito sono riportati i passaggi per eseguire questa operazione.

Nell’esempio di codice seguente viene illustrato come aggiungere testo alle diapositive in una presentazione di PowerPoint usando C++.

// Il percorso della directory dei documenti.
const String outPath = u"../out/TextBoxOnSlideProgram_out.pptx";
const String templatePath = u"../templates/DefaultFonts_out.pptx";

// Carica la presentazione desiderata
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Accedi alla prima diapositiva
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);

// Aggiungi una forma di tipo Rettangolo
SharedPtr<IAutoShape>  ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);

// Aggiungi TextFrame al rettangolo
ashp->AddTextFrame(u" ");

// Accesso alla cornice di testo
SharedPtr<ITextFrame>  txtFrame = ashp->get_TextFrame();

// Crea l'oggetto Paragrafo per la cornice di testo
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);

// Crea oggetto Porzione per il paragrafo
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose TextBox");
	
// Salva PPTX su disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Per ulteriori informazioni sulla manipolazione del testo nelle presentazioni, visita Aggiunta, formattazione e manipolazione del testo.

Crea una tabella in Presentazione usando C++

Di seguito sono riportati i passaggi per aggiungere una tabella nella diapositiva di una presentazione di PowerPoint usando Aspose.Slides per C++.

  • Crea un’istanza di una classe Presentazione.
  • Ottieni il riferimento di una diapositiva in un oggetto ISlide.
  • Definisci matrici di colonne e righe fornendo la larghezza.
  • Aggiungi una tabella alla diapositiva usando il metodo ISlide->getShapes()->AddTable().
  • Scorri ogni cella per applicare la formattazione ai bordi superiore, inferiore, destro e sinistro.
  • Unisci le celle se necessario.
  • Accedi alla cornice di testo di una cella per aggiungere del testo.
  • Salva la presentazione come file PPTX.

Nell’esempio di codice seguente viene illustrato come creare una tabella nella presentazione di PowerPoint utilizzando C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// Il percorso della directory dei documenti.
const String outPath = u"../out/TableFromScratch_out.pptx";

// Carica la presentazione desiderata
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Accedi alla prima diapositiva
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);

// Definisci colonne con larghezze e righe con altezze
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);

// Aggiungi la forma del tavolo alla diapositiva
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);


// Imposta il formato del bordo per ogni cella
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);

	}

}

// Unione di celle (1, 1) x (2, 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);

// Unione di celle (1, 2) x (2, 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);


// Salva PPTX su disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Per ulteriori informazioni sulla manipolazione delle tabelle, visitare Aggiunta, aggiornamento e manipolazione delle tabelle.

Crea un grafico in Presentazione usando C++

Aspose.Slides per C++ supporta vari tipi di grafici come sparsi, mappa ad albero, istogramma e etc. Per la dimostrazione, creiamo un grafico normale. Di seguito sono riportati i passaggi per eseguire questa operazione.

  • Crea un’istanza della classe Presentazione.
  • Ottieni il riferimento di una diapositiva su cui vuoi aggiungere il grafico.
  • Aggiungi il grafico con i dati predefiniti insieme al tipo desiderato usando il metodo ISlide->getShapes()->AddChart().
  • Ottieni il riferimento del grafico nell’oggetto IChart.
  • Cancella i dati del grafico e aggiungi nuove serie e categorie.
  • Aggiungi nuovi dati del grafico per le serie di grafici.
  • Imposta il colore di riempimento per le serie di grafici.
  • Aggiungi etichette delle serie di grafici.
  • Salva la presentazione come file PPTX.

Nell’esempio di codice seguente viene illustrato come inserire un grafico in una presentazione di PowerPoint usando C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// Il percorso della directory dei documenti.
	const String outPath = u"../out/NormalCharts_out.pptx";

	//Istanziare la classe Presentation che rappresenta il file PPTX
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	//Accedi alla prima diapositiva
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// Aggiungi grafico con dati predefiniti
	SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);


	// Impostazione dell'indice del foglio dati grafico
	int defaultWorksheetIndex = 0;

	// Ottenere il foglio di lavoro dei dati del grafico
	SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

	// Titolo della tabella delle impostazioni
	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);

	// Elimina serie e categorie generate predefinite
	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();


	// Ora, l'aggiunta di una nuova serie
	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());

	// Aggiungi categorie
	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")));

	
	// Prendi la prima serie di grafici
	SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

	// Ora popolando i dati della serie
	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)));

	// Impostazione del colore di riempimento per le serie
	series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
	series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());


	// Prendi la seconda serie di grafici
	 series = chart->get_ChartData()->get_Series()->idx_get(1);

	// Ora popolando i dati della serie
	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)));

	// Impostazione del colore di riempimento per le serie
	series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
	series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());


	// La prima etichetta mostrerà il nome della categoria
	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);

	// Mostra il valore per la terza etichetta
	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"/");

	// Scrivi il file di presentazione su disco
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Ulteriori informazioni sulla manipolazione dei grafici da Aggiunta, formattazione e manipolazione dei grafici.

Aprire una presentazione di PowerPoint in C++

Puoi anche aprire una presentazione PowerPoint esistente per modificare il contenuto. Per questo, puoi seguire i passaggi seguenti:

Nell’esempio di codice seguente viene illustrato come aprire una presentazione di PowerPoint esistente utilizzando C++.

// Il percorso della directory dei documenti
const String templatePath = u"../templates/AccessSlides.pptx";

// Istanziare la classe Presentation che rappresenta il file PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

// Stampa il conteggio delle diapositive
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare l’API senza limitazioni di valutazione.

Conclusione

In questo articolo hai imparato come creare presentazioni PowerPoint dall’interno delle applicazioni C++. La guida dettagliata e gli esempi di codice insieme ai riferimenti API hanno mostrato come creare una presentazione da zero e inserire diapositive, testo, tabelle e grafici. Puoi esplorare di più sull’API utilizzando la documentazione.

Guarda anche