MS PowerPoint es una aplicación rica en funciones que le permite crear presentaciones atractivas con texto, gráficos, animaciones, tablas y varios otros elementos. En esta publicación, aprenderá cómo implementar las funciones básicas de automatización de PowerPoint dentro de las aplicaciones de C++. En particular, llegará a saber cómo crear presentaciones de PowerPoint y agregar texto, imágenes, gráficos y tablas a las diapositivas usando C++.
- API de PowerPoint de C++
- Crear una presentación de PowerPoint en C++
- Agregar diapositivas a una presentación
- Agregar texto a una diapositiva de PowerPoint
- Crear una tabla en la presentación
- Crear un gráfico en la presentación
- Abrir una presentación de PowerPoint existente
- Obtenga una licencia gratis
API de PowerPoint de C++
Aspose.Slides for C++ está diseñado para automatizar las funciones de manipulación de presentaciones de PowerPoint dentro de las aplicaciones de C++. Con la API, puede crear, editar o convertir las presentaciones de PowerPoint sin problemas. Puede descargar el paquete completo de los archivos API u obtenerlo de NuGet.
Crear una presentación de PowerPoint en C++
Comencemos por crear una presentación de PowerPoint vacía usando Aspose.Slides for C++. Los siguientes son los pasos para realizar esta operación.
- Cree un objeto de la clase Presentation.
- Guarde la presentación usando el método Presentation->Save(String, SaveFormat::Pptx).
El siguiente ejemplo de código muestra cómo crear una presentación de PowerPoint usando C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// La ruta al directorio de documentos.
const String outPath = u"../out/SampleChartresult.pptx";
//Instanciar la clase de presentación que representa el archivo PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Agregar una forma automática de línea de tipo
slide->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Line, 50.0, 150.0, 300.0, 0.0);
//Guardar presentación
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Agregar diapositiva a una presentación en C++
Una vez que haya creado la presentación de PowerPoint, puede insertar diapositivas en ella. Los siguientes son los pasos para agregar diapositivas a una presentación de PowerPoint:
- Cree un objeto de la clase Presentation.
- Obtenga diapositivas en el objeto ISlideCollection usando el método Presentation->getSlides().
- Agregue la diapositiva usando el método ISlideCollection->AddEmptySlide().
- Guarde la presentación usando el método Presentation->Save(String, SaveFormat::Pptx).
El siguiente ejemplo de código muestra cómo agregar diapositivas a una presentación de PowerPoint usando C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// La ruta al directorio de documentos.
const String outPath = u"../templates/AddSlides.pptx";
// Instanciar clase de presentación que representa el archivo de presentación
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Crear una instancia de SlideCollection calss
SharedPtr<ISlideCollection> slds = pres->get_Slides();
for (int i = 0; i < pres->get_LayoutSlides()->get_Count(); i++)
{
// Agregar una diapositiva vacía a la colección Diapositivas
slds->AddEmptySlide(pres->get_LayoutSlides()->idx_get(i));
}
// Guarde el archivo PPTX en el disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Para obtener más información sobre la manipulación de diapositivas, visite Agregar, formatear y manipular diapositivas.
Agregar texto a una diapositiva de PowerPoint usando C++
Ahora, agreguemos texto a una diapositiva en la presentación de PowerPoint. Para ello, debe insertar un cuadro de texto en la diapositiva. A continuación se detallan los pasos para realizar esta operación.
- Cree una nueva presentación o cargue una existente usando la clase Presentation.
- Obtenga la referencia de la diapositiva en el objeto ISlide usando el método Presentation->getSlides()->idxget(int).
- Agregue un rectángulo a la diapositiva usando el método ISlide->getShapes()->AddAutoShape(ShapeType::Rectangle, int, int, int, int) y obtenga su referencia en el objeto IAutoShape.
- Agregue un marco de texto usando el método IAutoShape->AddTextFrame(u" “).
- Obtenga el marco de texto usando IAutoShape->getTextFrame() en el objeto ITextFrame.
- Obtenga el párrafo usando ITextFrame->getParagraphs()->idxget(0) en el objeto IParagraph.
- Acceda a una parte del párrafo usando IParagraph->getPortions()->idxget(0) en el objeto IPortion.
- Configure el texto usando el método IPortion->setText(u"Aspose TextBox”).
- Guarde la presentación usando el método Presentation->Save(String, SaveFormat::Pptx).
El siguiente ejemplo de código muestra cómo agregar texto a las diapositivas en una presentación de PowerPoint usando C++.
// La ruta al directorio de documentos.
const String outPath = u"../out/TextBoxOnSlideProgram_out.pptx";
const String templatePath = u"../templates/DefaultFonts_out.pptx";
// Cargue la presentación deseada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acceder a la primera diapositiva
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Agregar una autoforma de tipo rectángulo
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
// Añadir TextFrame al Rectángulo
ashp->AddTextFrame(u" ");
// Acceso al marco de texto
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame();
// Crear el objeto Párrafo para marco de texto
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);
// Crear objeto de porción para párrafo
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose TextBox");
// Guardar PPTX en disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Para obtener más información sobre la manipulación de texto en presentaciones, visite Agregar, formatear y manipular texto.
Crear una tabla en presentación usando C++
Los siguientes son los pasos para agregar una tabla en la diapositiva de una presentación de PowerPoint usando Aspose.Slides for C++.
- Cree una instancia de una clase Presentation.
- Obtener la referencia de una diapositiva en un objeto ISlide.
- Defina matrices de columnas y filas proporcionando el ancho.
- Agregue una tabla a la diapositiva usando el método ISlide->getShapes()->AddTable().
- Recorra cada celda para aplicar formato a los bordes superior, inferior, derecho e izquierdo.
- Combinar celdas si es necesario.
- Acceda al marco de texto de una celda para agregar texto.
- Guarde la presentación como un archivo PPTX.
El siguiente ejemplo de código muestra cómo crear una tabla en una presentación de PowerPoint usando C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// La ruta al directorio de documentos.
const String outPath = u"../out/TableFromScratch_out.pptx";
// Cargue la presentación deseada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acceder a la primera diapositiva
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);
// Definir columnas con anchos y filas con alturas
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);
// Agregar forma de tabla a la diapositiva
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);
// Establecer formato de borde para cada celda
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);
}
}
// Combinar celdas (1, 1) x (2, 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);
// Combinar celdas (1, 2) x (2, 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);
// Guardar PPTX en disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Para obtener más información sobre cómo manipular las tablas, visite Agregar, actualizar y manipular tablas.
Crear un gráfico en presentación usando C++
Aspose.Slides for C++ admite varios tipos de gráficos, como dispersos, de mapa de árbol, histograma y etc. Para la demostración, creemos un gráfico normal. A continuación se detallan los pasos para realizar esta operación.
- Cree una instancia de la clase Presentation.
- Obtenga la referencia de una diapositiva en la que desea agregar el gráfico.
- Agregue un gráfico con datos predeterminados junto con el tipo deseado usando el método ISlide->getShapes()->AddChart().
- Obtenga la referencia del gráfico en el objeto IChart.
- Borre los datos del gráfico y agregue nuevas series y categorías.
- Agregue nuevos datos de gráficos para series de gráficos.
- Establezca el color de relleno para la serie de gráficos.
- Agregue etiquetas de series de gráficos.
- Guarde la presentación como un archivo PPTX.
El siguiente ejemplo de código muestra cómo insertar un gráfico en una presentación de PowerPoint usando C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// La ruta al directorio de documentos.
const String outPath = u"../out/NormalCharts_out.pptx";
//Instanciar la clase de presentación que representa el archivo PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//Acceder a la primera diapositiva
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Agregar gráfico con datos predeterminados
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);
// Configuración del índice de la hoja de datos del gráfico
int defaultWorksheetIndex = 0;
// Obtener la hoja de trabajo de datos del gráfico
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();
// Tabla de configuración Título
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);
// Eliminar series y categorías generadas por defecto
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();
// Ahora, agregando una nueva 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());
// Añadir categorías
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")));
// Tomar la primera serie de gráficos
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);
// Ahora llenando datos de series
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)));
// Configuración del color de relleno para la serie
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
// Tome la segunda serie de gráficos
series = chart->get_ChartData()->get_Series()->idx_get(1);
// Ahora llenando datos de series
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)));
// Configuración del color de relleno para la 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 primera etiqueta mostrará el nombre de la categoría
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 la tercera etiqueta
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"/");
// Escribir el archivo de presentación en el disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Obtenga más información sobre la manipulación de gráficos en Agregar, formatear y manipular gráficos.
Abrir una presentación de PowerPoint en C++
También puede abrir una presentación de PowerPoint existente para editar el contenido. Para esto, puede seguir los siguientes pasos:
- Cargue el archivo PPTX utilizando la clase Presentation proporcionando el nombre del archivo.
- Actualizar el contenido de la presentación.
- Guarde el archivo actualizado usando el método Presentation->Save(String, SaveFormat).
El siguiente ejemplo de código muestra cómo abrir una presentación de PowerPoint existente usando C++.
// La ruta al directorio de documentos.
const String templatePath = u"../templates/AccessSlides.pptx";
// Instanciar la clase de presentación que representa el archivo PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Imprimir recuento de diapositivas
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());
Obtenga una licencia gratis
Puede obtener una licencia temporal gratuita para probar la API sin limitaciones de evaluación.
Conclusión
En este artículo, ha aprendido a crear presentaciones de PowerPoint desde las aplicaciones de C++. La guía paso a paso y los ejemplos de código junto con las referencias de la API han mostrado cómo crear una presentación desde cero e insertar diapositivas, texto, tablas y gráficos en ella. Puede explorar más sobre la API utilizando la documentación.