Introducción

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx archivos en C++ nativo, sin dependencia de Microsoft Office ni de ningún runtime propietario.

La biblioteca está diseñada para desarrolladores que necesitan generar o manipular archivos de presentación de forma programática: automatizar presentaciones a partir de datos, extraer texto y metadatos de archivos PPTX cargados, construir pipelines de informes basados en presentaciones, o incrustar la creación de presentaciones en aplicaciones de escritorio y servidor. Porque aspose_slides_foss está construida con CMake, se compila y despliega en Windows, macOS y Linux.

Características clave

  • Compatibilidad completa de ida y vuelta con PPTX: Abrir cualquier .pptx archivo, modificar su contenido y guardarlo nuevamente sin perder partes XML desconocidas que la biblioteca aún no comprende.
  • Gestión de diapositivas: Añadir, eliminar e iterar diapositivas usando prs.slides(); la presentación comienza con una diapositiva en blanco después de construir un Presentation.
  • AutoShapes, Tablas y Conectores: Insertar formas a través de slide.shapes().add_auto_shape(), datos tabulares a través de slide.shapes().add_table(), y conectores visuales entre formas a través de slide.shapes().add_connector().
  • Formato de texto enriquecido: Formatear texto a nivel de carácter con PortionFormat: tamaño de fuente, negrita, cursiva, subrayado y color ARGB a través de FillType::SOLID y ColorFormat.
  • Tipos de relleno: Aplicar FillType::SOLID, Gradient, Pattern, o Picture rellenos a cualquier forma.
  • Efectos visuales: Sombra externa, resplandor, borde suave, desenfoque, reflejo y sombra interna a través de shape.effect_format().
  • 3D formatting: Bisel, cámara, conjunto de luces, material y profundidad de extrusión a través de shape.three_d_format().
  • Notas del presentador: Adjuntar texto de notas a cada diapositiva a través de notes_slide_manager().add_notes_slide().
  • Comentarios en hilos: Añadir comentarios con metadatos del autor y posición de la diapositiva.
  • Imágenes incrustadas: Incrustar desde ruta de archivo, búfer de memoria o flujo.
  • Propiedades del documento: Leer y escribir propiedades centrales, de la aplicación y personalizadas.

Comenzando

Agregue la biblioteca mediante CMake. Se requiere un compilador C++17.

include(FetchContent)
FetchContent_Declare(
    aspose_slides_foss
    GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
    GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
target_link_libraries(your_target PRIVATE aspose_slides_foss)

Cree su primera presentación con una forma y guardarla:

#include <Aspose/Slides/Foss/presentation.h>

int main() {
    using namespace Aspose::Slides::Foss;

    Presentation prs;
    auto& slide = prs.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 400, 120
    );
    shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
    prs.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

El Presentation El destructor libera todos los recursos internos automáticamente cuando sale del alcance.

Formato de texto ejemplo

#include <Aspose/Slides/Foss/presentation.h>

using namespace Aspose::Slides::Foss;

Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
auto& fmt = shape.text_frame()->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(28);
fmt.set_font_bold(NullableBool::TRUE);
fmt.fill_format().set_fill_type(FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(Color::from_argb(255, 0, 70, 127));
prs.save("formatted.pptx", SaveFormat::PPTX);

Limitaciones actuales

Las siguientes áreas lanzan excepciones en esta versión:

  • Gráficos, SmartArt y objetos OLE
  • Animaciones y transiciones de diapositivas
  • Exportación a PDF, HTML, SVG o formatos de imagen
  • Hiperenlaces, configuraciones de acción, macros VBA y firmas digitales

Las partes XML desconocidas que se encuentran durante la carga se conservan verbatim en guardar, por lo que los archivos PPTX producidos por otras herramientas se recorren de forma segura.

Ver también