Aspose.Slides FOSS para C++ es una biblioteca con licencia MIT para trabajar con archivos .pptx de PowerPoint. Integra mediante CMake FetchContent y comienza de inmediato a crear, leer y editar presentaciones sin instalar Microsoft Office ni ningún runtime propietario.
La biblioteca expone una API de Presentación construida alrededor de Presentation, Slide, ShapeCollection, TextFrame, Paragraph y Portion, el modelo conceptual utilizado por PowerPoint mismo. Añade y elimina diapositivas, inserta AutoShapes, Tables y Connectors, formatea texto a nivel de carácter con negrita, cursiva, tamaño y color de fuente, aplica rellenos sólidos o degradados, y agrega efectos visuales (sombra, resplandor, desenfoque, reflejo).
Los semánticos RAII garantizan una limpieza fiable de recursos: el destructor Presentation libera todo el estado interno automáticamente. Las partes XML desconocidas encontradas durante la carga se conservan literalmente al guardar, de modo que el round-tripping nunca destruye contenido que la biblioteca aún no entiende. La biblioteca requiere un compilador compatible con C++20. Para funciones adicionales, consulte Aspose.Slides for C++ enterprise edition.
.pptx existentes mediante Presentation() o Presentation(path).SlideCollection con add_empty_slide(), remove() y remove_at().ShapeType mediante add_auto_shape().add_connector().NotesSlideManager.pres.comment_authors() y sus comentarios asociados.Portion mediante PortionFormat.FillFormat y FillType.EffectFormat.ParagraphFormat y set_alignment().Aspose.Slides FOSS se integra a través de CMake FetchContent, por lo que no se necesita descarga manual ni instalación a nivel del sistema. La biblioteca se compila desde el código fuente junto a su proyecto.
La API refleja el propio modelo de objetos de PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), por lo que cualquiera familiarizado con el modelo de objetos de PowerPoint puede usar la biblioteca de inmediato. Está bajo licencia MIT, es open-source en GitHub y requiere un compilador compatible con C++20.
RAII garantiza que el destructor Presentation libere todos los recursos automáticamente cuando el objeto sale del ámbito. add_auto_shape() acepta un enum ShapeType, luego la posición x/y y el ancho/alto en puntos — el text_frame de la forma proporciona acceso para establecer el contenido de texto.
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)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/export/save_format.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>
int main() {
Aspose::Slides::Foss::Presentation prs;
auto& slide = prs.slides()[0];
// Add a rectangle AutoShape
auto& shape = slide.shapes().add_auto_shape(
Aspose::Slides::Foss::ShapeType::RECTANGLE,
50, 50, 400, 150
);
shape.text_frame()->set_text("Hello, Aspose.Slides!");
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
return 0;
}
```cmake
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)
El formato de texto funciona a nivel de Portion — la unidad más pequeña de una secuencia de caracteres. Abra el archivo guardado, navegue a la primera porción del primer párrafo y establezca las propiedades de fuente directamente. El relleno de la forma es independiente: establezca el tipo de relleno a sólido y asigne un color.
#include <Aspose/Slides/Foss/presentation.h>
namespace asf = Aspose::Slides::Foss;
int main() {
asf::Presentation prs("output.pptx");
auto& shape = prs.slides()[0].shapes()[0];
auto& portion = shape.text_frame()
->paragraphs()[0].portions()[0];
// Bold, 18pt text
portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion.portion_format().set_font_height(18);
// Solid background fill on the shape
shape.fill_format().set_fill_type(asf::FillType::SOLID);
prs.save("formatted.pptx", asf::SaveFormat::PPTX);
return 0;
}
```cpp
#include <Aspose/Slides/Foss/presentation.h>
namespace asf = Aspose::Slides::Foss;
int main() {
asf::Presentation prs("output.pptx");
auto& shape = prs.slides()[0].shapes()[0];
auto& portion = shape.text_frame()
->paragraphs()[0].portions()[0];
// Bold, 18pt text
portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion.portion_format().set_font_height(18);
// Solid background fill on the shape
shape.fill_format().set_fill_type(asf::FillType::SOLID);
prs.save("formatted.pptx", asf::SaveFormat::PPTX);
return 0;
}
Es una biblioteca C++ gratuita, con licencia MIT, para crear, leer y editar presentaciones de PowerPoint .pptx sin requerir Microsoft Office.
.pptx es el formato de lectura/escritura compatible. La exportación a PDF, HTML, SVG o imágenes no está disponible en esta edición.
No. Aspose.Slides FOSS es una biblioteca C++ independiente sin dependencia de Microsoft Office, automatización COM o cualquier tiempo de ejecución propietario.
Utilice CMake FetchContent para integrar la biblioteca directamente desde GitHub. La biblioteca requiere un compilador compatible con C++20.
Sí. La biblioteca admite efectos de sombra externa, resplandor, desenfoque y reflexión en cualquier objeto de forma a través de la API EffectFormat.
Sí. El destructor de Presentation libera todo el estado interno automáticamente, por lo que no se necesita una limpieza explícita.
No. Las partes desconocidas de XML encontradas durante la carga se conservan literalmente al guardar, de modo que el contenido que la biblioteca aún no comprende nunca se pierde.
La biblioteca tiene licencia MIT y está alojada en GitHub. Se agradecen los informes de errores y las solicitudes de extracción.