O MS PowerPoint é um aplicativo rico em recursos que permite criar apresentações atraentes com texto, gráficos, animações, gráficos e vários outros elementos. Neste post, você aprenderá como implementar os recursos básicos de automação do PowerPoint nos aplicativos C++. Particularmente, você saberá como criar apresentações em PowerPoint e adicionar texto, imagens, gráficos e tabelas aos slides usando C++.
- API C++ do PowerPoint
- Criar uma apresentação do PowerPoint em C++
- Adicionar slides a uma apresentação
- Adicionar texto a um slide do PowerPoint
- Criar uma tabela na apresentação
- Criar um gráfico na apresentação
- Abra uma apresentação do PowerPoint existente
- Obtenha Licença Gratuita
API C++ do PowerPoint
Aspose.Slides for C++ foi projetado para automatizar os recursos de manipulação de apresentações do PowerPoint em aplicativos C++. Usando a API, você pode criar, editar ou converter as apresentações do PowerPoint sem problemas. Você pode baixar o pacote completo dos arquivos da API ou obtê-lo em NuGet.
Criar uma apresentação do PowerPoint em C++
Vamos começar criando uma apresentação do PowerPoint vazia usando Aspose.Slides para C++. A seguir estão as etapas para realizar esta operação.
- Crie um objeto da classe Apresentação.
- Salve a apresentação usando o método Presentation->Save(String, SaveFormat::Pptx).
O exemplo de código a seguir mostra como criar uma apresentação do PowerPoint usando C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// O caminho para o diretório de documentos.
const String outPath = u"../out/SampleChartresult.pptx";
//Instanciar classe de apresentação que representa o arquivo PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Adicionar uma forma automática de linha de tipo
slide->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Line, 50.0, 150.0, 300.0, 0.0);
//Salvando apresentação
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Adicionar slide a uma apresentação em C++
Depois de criar a apresentação do PowerPoint, você pode inserir slides nela. A seguir estão as etapas para adicionar slides a uma apresentação do PowerPoint:
- Crie um objeto da classe Apresentação.
- Obtenha slides no objeto ISlideCollection usando o método Presentation->getSlides().
- Adicione slide usando o método ISlideCollection->AddEmptySlide().
- Salve a apresentação usando o método Presentation->Save(String, SaveFormat::Pptx).
O exemplo de código a seguir mostra como adicionar slides a uma apresentação do PowerPoint usando C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// O caminho para o diretório de documentos.
const String outPath = u"../templates/AddSlides.pptx";
// Instanciar a classe Presentation que representa o arquivo de apresentação
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Instanciar calss SlideCollection
SharedPtr<ISlideCollection> slds = pres->get_Slides();
for (int i = 0; i < pres->get_LayoutSlides()->get_Count(); i++)
{
// Adicionar um slide vazio à coleção de slides
slds->AddEmptySlide(pres->get_LayoutSlides()->idx_get(i));
}
// Salve o arquivo PPTX no disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Para saber mais sobre como manipular slides, visite Adicionar, formatar e manipular slides.
Adicionar texto a um slide do PowerPoint usando C++
Agora, vamos adicionar texto a um slide na apresentação do PowerPoint. Para isso, você precisa inserir uma caixa de texto no slide. Abaixo estão os passos para realizar esta operação.
- Crie uma nova apresentação ou carregue uma existente usando a classe Apresentação.
- Obtenha a referência do slide no objeto ISlide usando o método Presentation->getSlides()->idxget(int).
- Adicione um retângulo ao slide usando o método ISlide->getShapes()->AddAutoShape(ShapeType::Rectangle, int, int, int, int) e obtenha sua referência no objeto IAutoShape.
- Adicione o quadro de texto usando o método IAutoShape->AddTextFrame(u" “).
- Obtenha o quadro de texto usando IAutoShape->getTextFrame() no objeto ITextFrame.
- Obtenha o parágrafo usando ITextFrame->getParagraphs()->idxget(0) no objeto IPagraph.
- Acesse a parte do parágrafo usando IPagraph->getPortions()->idxget(0) no objeto IPortion.
- Defina o texto usando o método IPortion->setText(u"Aspose TextBox”).
- Salve a apresentação usando o método Presentation->Save(String, SaveFormat::Pptx).
O exemplo de código a seguir mostra como adicionar texto a slides em uma apresentação do PowerPoint usando C++.
// O caminho para o diretório de documentos.
const String outPath = u"../out/TextBoxOnSlideProgram_out.pptx";
const String templatePath = u"../templates/DefaultFonts_out.pptx";
// Carregue a apresentação desejada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acesse o primeiro slide
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Adicionar uma AutoForma do tipo Retângulo
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
// Adicionar TextFrame ao retângulo
ashp->AddTextFrame(u" ");
// Acessando o quadro de texto
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame();
// Crie o objeto Parágrafo para o quadro de texto
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);
// Criar objeto Porção para parágrafo
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose TextBox");
// Salvar PPTX em disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Para saber mais sobre como manipular texto em apresentações, visite Adicionar, formatar e manipular texto.
Criar uma tabela na apresentação usando C++
A seguir estão as etapas para adicionar uma tabela no slide de uma apresentação do PowerPoint usando Aspose.Slides para C++.
- Crie uma instância de uma classe Apresentação.
- Obtenha a referência de um slide em um objeto ISlide.
- Defina matrizes de colunas e linhas fornecendo a largura.
- Adicione uma tabela ao slide usando o método ISlide->getShapes()->AddTable().
- Itere em cada célula para aplicar formatação às bordas superior, inferior, direita e esquerda.
- Mesclar células, se necessário.
- Acesse o quadro de texto de uma célula para adicionar algum texto.
- Salve a apresentação como um arquivo PPTX.
O exemplo de código a seguir mostra como criar uma tabela na apresentação do PowerPoint usando C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// O caminho para o diretório de documentos.
const String outPath = u"../out/TableFromScratch_out.pptx";
// Carregue a apresentação desejada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acesse o primeiro slide
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);
// Definir colunas com larguras e linhas com alturas
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);
// Adicionar forma de tabela ao slide
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);
// Definir o formato da borda para cada célula
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);
}
}
// Mesclando células (1, 1) x (2, 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);
// Mesclando células (1, 2) x (2, 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);
// Salvar PPTX em disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Para saber mais sobre como manipular as tabelas, visite Adicionar, atualizar e manipular tabelas.
Criar um gráfico na apresentação usando C++
Aspose.Slides para C++ suporta vários tipos de gráficos, como dispersos, mapa de árvore, histograma e etc. Para a demonstração, vamos criar um gráfico normal. Abaixo estão os passos para realizar esta operação.
- Crie uma instância da classe Apresentação.
- Obtenha a referência de um slide ao qual deseja adicionar o gráfico.
- Adicione o gráfico com os dados padrão junto com o tipo desejado usando o método ISlide->getShapes()->AddChart().
- Obtenha a referência do gráfico no objeto IChart.
- Limpe os dados do gráfico e adicione novas séries e categorias.
- Adicione novos dados de gráfico para séries de gráficos.
- Defina a cor de preenchimento para a série do gráfico.
- Adicione rótulos de série de gráfico.
- Salve a apresentação como um arquivo PPTX.
O exemplo de código a seguir mostra como inserir um gráfico em uma apresentação do PowerPoint usando C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// O caminho para o diretório de documentos.
const String outPath = u"../out/NormalCharts_out.pptx";
//Instanciar classe de apresentação que representa o arquivo PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Acesse o primeiro slide
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Adicionar gráfico com dados padrão
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);
// Configurando o índice da folha de dados do gráfico
int defaultWorksheetIndex = 0;
// Obtendo a planilha de dados do gráfico
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();
// Definindo o título do gráfico
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);
// Excluir séries e categorias geradas padrão
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();
// Agora, Adicionando uma nova 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());
// Adicionar categorias
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")));
// Pegue a primeira série de gráficos
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);
// Agora preenchendo dados de 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)));
// Configurando a cor de preenchimento para a série
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
// Pegue a segunda série de gráficos
series = chart->get_ChartData()->get_Series()->idx_get(1);
// Agora preenchendo dados de 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)));
// Configurando a cor de preenchimento para a série
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());
// O primeiro rótulo mostrará o nome da 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);
// Mostrar valor para o terceiro rótulo
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"/");
// Gravar o arquivo de apresentação no disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Saiba mais sobre como manipular gráficos em Adicionar, formatar e manipular gráficos.
Abra uma apresentação do PowerPoint em C++
Você também pode abrir uma apresentação do PowerPoint existente para editar o conteúdo. Para isso, você pode seguir os passos abaixo:
- Carregue o arquivo PPTX usando a classe Apresentação fornecendo o nome do arquivo.
- Atualize o conteúdo da apresentação.
- Salve o arquivo atualizado usando o método Apresentação->Save(String, SaveFormat).
O exemplo de código a seguir mostra como abrir uma apresentação do PowerPoint existente usando C++.
// O caminho para o diretório de documentos
const String templatePath = u"../templates/AccessSlides.pptx";
// Instanciar classe de apresentação que representa o arquivo PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Imprimir contagem de slides
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());
Obtenha uma licença gratuita
Você pode obter uma licença temporária gratuita para experimentar a API sem limitações de avaliação.
Conclusão
Neste artigo, você aprendeu como criar apresentações do PowerPoint a partir dos aplicativos C++. O guia passo a passo e os exemplos de código, juntamente com as referências da API, mostraram como criar uma apresentação do zero e inserir slides, texto, tabelas e gráficos nela. Você pode explorar mais sobre a API usando a documentação.