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
.pptxarchivo, 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 unPresentation. - AutoShapes, Tablas y Conectores: Insertar formas a través de
slide.shapes().add_auto_shape(), datos tabulares a través deslide.shapes().add_table(), y conectores visuales entre formas a través deslide.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 deFillType::SOLIDyColorFormat. - Tipos de relleno: Aplicar
FillType::SOLID,Gradient,Pattern, oPicturerellenos 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.