Introducción

Aspose.Slides FOSS for C++ (aspose_slides_fossEs una biblioteca libre y de código abierto C++20 para crear y manipular presentaciones de PowerPoint programáticamente. Construida en todo el nativo C ++ con ninguna dependencia del tiempo de trabajo externo más allá de CMake 3.20+, ofrece a los desarrolladores un control completo sobre los archivos PPTX sin que se requiera Microsoft Office o cualquier software propiedad.

La biblioteca se libera bajo la licencia del MIT, lo que hace adecuado tanto para proyectos comerciales como no comercial. Aspose::Slides::Foss Namespace y proporciona un rico modelo de objetos que cubre presentaciones, rasgos, formas, tablas, cadros de texto, propiedades de documento, comentarios y exportación PPTX.

Este post pasa a través de la superficie API central: las clases y métodos que usará más a menudo cuando construye, formata y salva presentaciones.


Lo que está incluido

Presentación y gestión de slide

El Presentation clase es el punto de entrada. Crear una nueva instancia le da un slide por defecto que está pronto para el contenido inmediatamente. SlideCollection devuelto por slides(), que soporta acceso indexado, iteración, eliminación y reordenamiento.

#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;

Presentation pres;
auto& slide = pres.slides()[0]; // first slide
// Work with the slide...
pres.save("output.pptx", SaveFormat::PPTX);

Forma y autoformaciones

Cada disco muestra una ShapeCollection A través de su shapes() La colección proporciona métodos de fábrica para agregar diferentes tipos de forma: add_auto_shape para las formas geométricas estándar (rectangulos, elipsos, triángulos), add_connector para los conectores de línea, add_table para las mesas y add_picture_frame para las imágenes.

auto& slide = pres.slides()[0];

// Add a rectangle
auto& rect = slide.shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 100);

// Add an ellipse
auto& ellipse = slide.shapes().add_auto_shape(
    ShapeType::ELLIPSE, 400, 50, 150, 150);

// Add a connector between shapes
auto& conn = slide.shapes().add_connector(
    ShapeType::BENT_CONNECTOR3, 0, 0, 1, 1);

El ShapeCollection También apoya size(), remove(), remove_at(), reorder(), index_of(),y, clear() para la gestión de las formas después de la creación.

Formato de texto y parágrafo

Las formas pueden mantener el texto a través de TextFrame.Uso de add_text_frame() En un AutoShape para añadir contenido de texto, o acceder al marco existente a través del text_frame().El texto se organiza en párrafos, cada uno con una o más porciones. BasePortionFormat La clase exponerá propiedades de estilo de fontas, incluyendo el tipo audaz, italiano, sublime, capitalizador, estricto y color de la fontada.

auto& shape = pres.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 100, false);
shape.add_text_frame("Hello, world!");
auto text = shape.text_frame()->text(); // "Hello, world!"

Completo, Gradiente y Efectos Visuales

Cada forma proporciona una FillFormat Accesible a través de fill_format().Puedes establecer enchufes sólidos, enchaje gradiente o encharzos de patrón a través del set_fill_type() Los gradientes se configuran a través de la GradientFormat objeto, que soporta ángulos lineales, forma gradiente y paradas de color a través del GradientStopCollection.

auto& shape = slide.shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 150);
shape.fill_format().set_fill_type(FillType::GRADIENT);
auto& gf = shape.fill_format().gradient_format();
gf.set_gradient_shape(GradientShape::LINEAR);
gf.set_linear_gradient_angle(45);
gf.gradient_stops().add(0.0f, Color::blue);
gf.gradient_stops().add(1.0f, Color::red);

El EffectFormat La clase (accesado a través de effect_format()Se añade el brillo, la sombra exterior y los efectos del borde suave. Cada efecto se habilita con un método dedicado (enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()y configurado a través de su objeto devuelto.

Mesa de

Las mesas se crean con add_table() en la colección de formas. usted proporciona anchoas de columna y alturas en línea como vectores. Table Objetos de exposición rows() y columns() colecciones y individuales Cell Objetos que soportan contenido de texto a través de TextFrame.

std::vector<double> col_widths = {100, 150, 200};
std::vector<double> row_heights = {40, 40, 40};
auto& table = slide.shapes().add_table(
    50, 50, col_widths, row_heights);
// table.rows().size() == 3
// table.columns().size() == 3

Propiedades y comentarios de documentos

El DocumentProperties clase le permite establecer metadatos como título, autor, tema, palabras clave, categoría, número de revisión y timestamps.

Los comentarios se manejan a través de CommentAuthorCollection y CommentCollection.Añade a los autores con add_author(), luego añade comentarios a los rasgos específicos en las coordenadas específicas.

Presentation pres;
auto& author = pres.comment_authors().add_author("Alice", "A");
auto& slide = pres.slides()[0];
auto& comment = author.comments().add_comment(
    "Review note", slide, PointF(2.0f, 3.0f), now);

Inicio rápido

Construido desde la fuente

La biblioteca requiere CMake 3.20+ y un compilador C++20-capable. Clone el repositorio y construye:

git clone https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
cd Aspose.Slides-FOSS-for-Cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

El mínimo ejemplo

#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];

    // Add a shape with text
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 300, 100, false);
    shape.add_text_frame("Hello from Aspose.Slides FOSS!");

    // Apply a solid fill
    shape.fill_format().set_fill_type(FillType::SOLID);
    shape.fill_format().solid_fill_color().set_color(Color::blue);

    // Save
    pres.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

Formatos apoyados

El SaveFormat Enum define todos los objetivos de exportación. Los siguientes formatos se confirman en el código fuente:

FormatoExtensionesLeerEscribe
PPTX.ptx
PPT.ppt enPlanificado
PPSX.pxPlanificado
PPTM.pptm en elPlanificado
PPSM.ppsm en elPlanificado
POTX.PóxPlanificado
POTM.POTMPlanificado
POT.POTPlanificado
PPS.ppsPlanificado
ODP.odpPlanificado
OTP.tpPlanificado
FODP.FODPPlanificado
PDF.pdfPlanificado
XPS.XPSPlanificado
HTML.html en elPlanificado
HTML5.html en elPlanificado
TIFF.TIFFPlanificado
GIF.GIFPlanificado
SWF.swfPlanificado
MD.mdPlanificado
XML.xml dePlanificado

Nota de: Actualmente sólo se implementa la exportación de PPTX. otros valores de formato existen en el SaveFormat enum para la compatibilidad de avance pero aún no funcionan. save() El método siempre produce la salida PPTX independientemente del parámetro de formato.


Open Source y Licenciación

Aspose.Slides FOSS for C++ is released under the MIT license. You can use it freely in personal projects, commercial applications, and redistributed libraries. There are no API keys, watermarks, or usage limits. The full source code is available on GitHub at HTTPS://github.com/aspose-slides-foss/Aspose.Slides - FOSS-for-Cpp.


Empezando a

¿Estás dispuesto a integrar Aspose.Slides FOSS en tu proyecto C++? aquí están los recursos clave:

Recursos relacionados