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
- Crea una presentazione PowerPoint in C++
- Aggiungi diapositive a una presentazione
- Aggiungi testo a una diapositiva di PowerPoint
- Crea una tabella nella presentazione
- Crea un grafico in Presentazione
- Aprire una presentazione PowerPoint esistente
- Ottieni licenza gratuita
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.
- Crea un oggetto della classe Presentazione.
- Salva la presentazione usando il metodo Presentation->Save(String, SaveFormat::Pptx).
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:
- Crea un oggetto della classe Presentazione.
- Ottieni le diapositive nell’oggetto ISlideCollection usando il metodo Presentation->getSlides().
- Aggiungi diapositiva usando il metodo ISlideCollection->AddEmptySlide().
- Salva la presentazione usando il metodo Presentation->Save(String, SaveFormat::Pptx).
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.
- Crea una nuova presentazione o caricane una esistente usando la classe Presentazione.
- Ottieni il riferimento della diapositiva nell’oggetto ISlide usando il metodo Presentation->getSlides()->idxget(int).
- Aggiungi un rettangolo alla diapositiva usando il metodo ISlide->getShapes()->AddAutoShape(ShapeType::Rectangle, int, int, int, int) e ottieni il suo riferimento nell’oggetto IAutoShape.
- Aggiungi una cornice di testo usando il metodo IAutoShape->AddTextFrame(u" “).
- Ottieni la cornice di testo usando IAutoShape->getTextFrame() nell’oggetto ITextFrame.
- Ottieni il paragrafo usando ITextFrame->getParagraphs()->idxget(0) nell’oggetto IParagraph.
- Accedi alla parte del paragrafo usando IParagraph->getPortions()->idxget(0) nell’oggetto IPortion.
- Imposta il testo usando il metodo IPortion->setText(u"Aspose TextBox”).
- Salva la presentazione usando il metodo Presentation->Save(String, SaveFormat::Pptx).
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:
- Carica il file PPTX utilizzando la classe Presentazione fornendo il nome del file.
- Aggiorna il contenuto della presentazione.
- Salvare il file aggiornato utilizzando il metodo Presentazione->Salva(Stringa, SalvaFormat).
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.