Introductie

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx bestanden in native C++, zonder afhankelijkheid van Microsoft Office of enige propriëtaire runtime.

De bibliotheek is ontworpen voor ontwikkelaars die programmatisch presentatiebestanden moeten genereren of manipuleren: het automatiseren van dia‑sets vanuit data, het extraheren van tekst en metadata uit geüploade PPTX‑bestanden, het bouwen van op presentaties gebaseerde rapportage‑pijplijnen, of het integreren van presentatie‑creatie in desktop‑ en serverapplicaties. Omdat aspose_slides_foss is gebouwd met CMake, compileert en wordt gedeployed op Windows, macOS en Linux.

Belangrijkste functies

  • Volledige round‑trip PPTX‑ondersteuning: Open elk .pptx bestand, wijzig de inhoud en sla het opnieuw op zonder onbekende XML‑onderdelen te verliezen die de bibliotheek nog niet begrijpt.
  • Dia‑beheer: Voeg dia’s toe, verwijder ze en doorloop ze met behulp van prs.slides(); de presentatie begint met één lege dia na het construeren van een Presentation.
  • AutoShapes, Tabellen en Connectors: Voeg vormen in via slide.shapes().add_auto_shape(), tabelgegevens via slide.shapes().add_table(), en visuele connectors tussen vormen via slide.shapes().add_connector().
  • Rich‑textopmaak: Formatteer tekst op teken‑niveau met PortionFormat: lettergrootte, vet, cursief, onderstrepen en ARGB‑kleur via FillType::SOLID en ColorFormat.
  • Vultypen: Toepassen FillType::SOLID, Gradient, Pattern, of Picture vult elke vorm.
  • Visuele effecten: Buitenste schaduw, gloed, zachte rand, vervaging, reflectie en binnenste schaduw via shape.effect_format().
  • 3D formatting: Afschuining, camera, lichtinstallatie, materiaal en extrusiediepte via shape.three_d_format().
  • Sprekersnotities: Voeg notitietekst toe aan elke dia via notes_slide_manager().add_notes_slide().
  • Gegroepeerde opmerkingen: Voeg opmerkingen toe met auteursmetadata en dia‑positie.
  • Ingesloten afbeeldingen: Insluiten vanaf bestandspad, geheugenbuffer of stream.
  • Documenteigenschappen: Lees en schrijf kern-, app- en aangepaste eigenschappen.

Aan de slag

Voeg de bibliotheek toe via CMake. Een C++17-compiler is vereist.

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)

Maak uw eerste presentatie met een vorm en sla deze op:

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

De Presentation destructor geeft alle interne bronnen automatisch vrij wanneer deze buiten het bereik valt.

Voorbeeld van tekstopmaak

#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);

Huidige beperkingen

De volgende gebieden werpen uitzonderingen in deze release:

  • Grafieken, SmartArt en OLE-objecten
  • Animaties en dia‑overgangen
  • Exporteren naar PDF, HTML, SVG of afbeeldingsformaten
  • Hyperlinks, actieregels, VBA-macro’s en digitale handtekeningen

Onbekende XML-onderdelen die tijdens het laden worden aangetroffen, worden bij het opslaan letterlijk bewaard, zodat PPTX‑bestanden die door andere tools zijn gemaakt veilig round‑tripen.

Zie ook