Introducció

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx arxius en C++ nativa, sense dependència de Microsoft Office o qualsevol temps d’execució propietari.

La biblioteca està dissenyada per a desenvolupadors que necessiten generar o manipular fitxers de presentació programàticament: automatizar diapositives des de dades, extraure text i metadades dels arxius PPTX carregats, construir pipelines d’informes basades en presentacions o incrustar la creació de representacions en aplicacions de desktop i servidor. aspose_slides_foss és construït amb CMake, compila i desplega en Windows, macOS i Linux.

Característiques clau

  • Suport PPTX complet d’anar i venir:Obre qualsevol: .pptx arxiu, modificar el seu contingut i guardar-lo de nou sense perdre parts XML desconegudes que la biblioteca encara no entén.
  • Gestió de diapositives: Agregar, eliminar i iterar diapositives utilitzant prs.slides();La presentació comença amb una diapositiva en blanc després de construir un model d’una pàgina. Presentation.
  • AutoShapes, taules i connectors: Insertar formes a través de: slide.shapes().add_auto_shape(), dades tabulars via slide.shapes().add_table(), i connectors visuals entre formes a través de slide.shapes().add_connector().
  • Formateig de text enriqueixut: Formatar text a nivell de caràcters amb: PortionFormat: mida de font, en negrit, cursiva, sota l’índex i color ARGB via FillType::SOLID i de la ColorFormat.
  • Tipus de rellotge: Aplicar FillType::SOLID, FillType::GRADIENT, FillType::PATTERN, o FillType::PICTURE s’omple a qualsevol forma.
  • Efectes visuals: Ombre exterior, brillantor, bord suau, desfoc, reflexió i ombra interior via shape.effect_format().
  • 3D formatting: Bevel, càmera, plataforma de llum, material i profunditat d’extrusió via shape.three_d_format().
  • Notes de l’alfabet: Ajuntar text de les notes a cada diapositiva via notes_slide_manager().add_notes_slide().
  • Comentaris en línia: Agregar comentaris amb metadades de l’autor i posició de diapositives.
  • Imatges incrustades: Embed des de la ruta del fitxer, el buffer de memòria o l’enviament.
  • Propietats del document: Llegir i escriure propietats de nucli, aplicacions i personalitzades.

Com començar a treballar

S’ha d’afegir la biblioteca a través de CMake. Es requereix un compilador C++20.

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)

Crea la teva primera presentació amb una forma i guarda-la:

#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() {
    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 alliberarà tots els recursos interns automàticament quan surti de la seva portada.

Exemple de formatatge del text

#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/nullable_bool.h>
#include <Aspose/Slides/Foss/paragraph.h>
#include <Aspose/Slides/Foss/paragraph_collection.h>
#include <Aspose/Slides/Foss/portion.h>
#include <Aspose/Slides/Foss/portion_collection.h>
#include <Aspose/Slides/Foss/portion_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>

using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;

int main() {
    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);
    return 0;
}

Limitacions actuals

Les següents àrees no estan disponibles en aquesta edició:

  • Gràfics, SmartArt i objectes OLE
  • Animacions i transicions de diapositives
  • Exportació a formats PDF, HTML, SVG o d’imatge
  • Hipervincles, configuracions d’acció, màcrores VBA i signatures digitals

Les parts XML desconegudes que es troben durant la càrrega s’preserven literalment en l’enregistrament, de manera que els arxius PPTX produïts per altres eines poden anar i venir amb seguretat.

Veure també