Cómo comenzar con Aspose.Slides FOSS para C++
aspose_slides_foss para C++ es una biblioteca gratuita, licenciada por MIT para crear y editar PowerPoint .pptx archivos — no Microsoft Office requerido, construido con CMake.
Guía paso a paso
Paso 1: Añadir la biblioteca a través de CMake
añadir aspose_slides_foss Para tu CMakeLists.txt (C++20 compiler requerido):
cmake_minimum_required(VERSION 3.20)
project(MyProject)
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)
add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE aspose_slides_foss)Paso 2: Incluir los cabezas necesarios
Incluye los header para las clases que necesitas:
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/text_frame.h>
#include <Aspose/Slides/Foss/export/save_format.h>Paso 3: Crea una presentación
Construye a Presentation Para empezar con una hoja blanca, entonces guardarla:
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/export/save_format.h>
using namespace Aspose::Slides::Foss;
int main() {
Presentation prs;
prs.save("new_presentation.pptx", SaveFormat::PPTX);
return 0;
}Paso 4: Agregar una forma con texto
Uso slide.shapes().add_auto_shape() para insertar un rectángulo, luego llamar text_frame()->set_text() Para añadir contenido de texto:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
#include <Aspose/Slides/Foss/export/save_format.h>
using namespace Aspose::Slides::Foss;
int main() {
Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 400, 150
);
shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
prs.save("with_shape.pptx", SaveFormat::PPTX);
return 0;
}Paso 5: Aplique un lleno y ahorra
Póngase un color de lleno sólido en la forma antes de ahorrar:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/export/save_format.h>
using namespace Aspose::Slides::Foss;
int main() {
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 100, 100, 400, 200
);
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(0xFF, 0x46, 0x82, 0xB4);
shape.text_frame()->set_text("Styled shape");
prs.save("styled.pptx", SaveFormat::PPTX);
return 0;
}Problemas y soluciones comunes
Errores de la línea con referencias indefinidas Seguridad target_link_libraries(your_target PRIVATE aspose_slides_foss) Está en tu CMakeLists.txt La biblioteca fue construida con éxito por medio de FetchContent.
El archivo de la cabeza no se encuentra incluye el camino completo que comienza con <Aspose/Slides/Foss/...>.Corrida cmake --build de la catedral, no del catálogo.
UnsupportedOperationException Ecuador para las características no apoyadas Algunas características (chaps, animaciones, exportación de PDF) no están apoyadas. ver el proyecto Documentación de la lista actual de limitaciones.
Crash cuando accede a las imágenes por índice El defecto Presentation siempre crea una slide en el índice 0. si cargó un vacío archivo o eliminar todos los slides, prs.slides()[0] estará fuera de la gama.
Preguntas frecuentes
¿Aspose_slides_foss requiere Microsoft Office?
La biblioteca crea y lee .pptx archivos nativos en C++ sin dependencia Microsoft Office, COM automation o Windows APIs.
¿Qué compiladores y estándares C++ están apoyados?
La biblioteca requiere C++20 o más tarde. se prueba con GCC 11+, Clang 13+ y MSVC 2022.
¿La biblioteca es libre para uso comercial?
Se publica bajo la Licencia MIT. Puede utilizar, modificar y redistribuirlo para cualquier propósito, incluidas las aplicaciones comerciales.
¿Puedo cargar un archivo PPTX existente?
Si. pasar el camino de archivo a la Presentation El constructor:
Presentation prs("existing.pptx");
prs.save("copy.pptx", SaveFormat::PPTX);¿Cómo puedo añadir múltiples slides?
Uso prs.slides().add_empty_slide(layout) Después de obtener un layout de prs.masters()[0].layout_slides()[0].