1. Productos
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS para C++

Cree, lea y edite presentaciones PowerPoint desde C++ — gratuito y de código abierto, sin dependencia de Office.

Biblioteca de C++ de código abierto para presentaciones PowerPoint

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.

API de presentación y diapositiva

  • Crear y abrir PPTX: Crear nuevas presentaciones o abrir archivos .pptx existentes mediante Presentation() o Presentation(path).
  • Agregar y eliminar diapositivas: Administre programáticamente el SlideCollection con add_empty_slide(), remove() y remove_at().
  • AutoShapes: Inserte rectángulos, elipses, líneas y otras geometrías ShapeType mediante add_auto_shape().
  • Tablas y Conectores: Agregue formas de tabla estructuradas y líneas de conexión entre formas mediante add_connector().
  • Notas del orador: Leer y escribir notas del orador por diapositiva a través de NotesSlideManager.
  • Comentarios con hilos: Acceda a los hilos de comentarios iterando pres.comment_authors() y sus comentarios asociados.

Dónde se puede usar Aspose.Slides FOSS

  • Report generation: Cree presentaciones de diapositivas con marca a partir de fuentes de datos sin Office.
  • Automatización de plantillas: Rellena plantillas PPTX con contenido dinámico en pipelines CI/CD.
  • Migración de contenido: Leer presentaciones existentes y reestructurar o volver a diseñar las diapositivas.
  • Sistemas embebidos: Procesar archivos PPTX en entornos críticos de rendimiento o con recursos limitados.
  • Procesamiento por lotes: Aplicar cambios de formato uniformes en grandes bibliotecas de presentaciones.

Formato de texto y efectos visuales

  • Formato a nivel de carácter: Aplicar negrita, cursiva, tamaño de fuente y color a objetos individuales Portion mediante PortionFormat.
  • Rellenos sólidos y degradados: Establezca el relleno de la forma a un color sólido o un degradado lineal de varios puntos usando FillFormat y FillType.
  • Efectos de sombra y resplandor: Aplica sombra externa, resplandor, desenfoque y reflexión a cualquier forma a través de EffectFormat.
  • Alineación de párrafo: Establezca la alineación izquierda, centrada, derecha o justificada por párrafo usando ParagraphFormat y set_alignment().
  • Round-trip safe: Las partes desconocidas XML se conservan literalmente al volver a guardar.

Experiencia del desarrollador

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.

Crear una presentación y añadir una forma

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)
 

Formatear texto y aplicar un efecto de relleno

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;
}
 

Preguntas frecuentes

¿Qué es Aspose.Slides FOSS para C++?

Es una biblioteca C++ gratuita, con licencia MIT, para crear, leer y editar presentaciones de PowerPoint .pptx sin requerir Microsoft Office.

¿Qué formatos de archivo son compatibles?

.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.

¿Requiere Microsoft Office o PowerPoint?

No. Aspose.Slides FOSS es una biblioteca C++ independiente sin dependencia de Microsoft Office, automatización COM o cualquier tiempo de ejecución propietario.

¿Cómo lo instalo?

Utilice CMake FetchContent para integrar la biblioteca directamente desde GitHub. La biblioteca requiere un compilador compatible con C++20.

¿Puedo aplicar efectos visuales como sombra y resplandor?

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.

¿Utiliza la biblioteca RAII para la gestión de recursos?

Sí. El destructor de Presentation libera todo el estado interno automáticamente, por lo que no se necesita una limpieza explícita.

¿El proceso de ida y vuelta de un PPTX destruirá contenido desconocido?

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.

¿Dónde puedo encontrar el código fuente?

La biblioteca tiene licencia MIT y está alojada en GitHub. Se agradecen los informes de errores y las solicitudes de extracción.

  

Recursos de soporte y aprendizaje

 Español