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

Aspose.Slides FOSS voor C++

Maak, lees en bewerk PowerPoint-presentaties vanuit C++ — gratis en open-source, geen Office-afhankelijkheid vereist.

Open-source C++-bibliotheek voor PowerPoint-presentaties

Aspose.Slides FOSS voor C++ is een MIT-gelicentieerde bibliotheek voor het werken met PowerPoint .pptx bestanden. Integreer het via CMake FetchContent en begin meteen met het maken, lezen en bewerken van presentaties zonder Microsoft Office of enige propriëtaire runtime te installeren.

De bibliotheek biedt een Presentation API die is opgebouwd rond Presentation, Slide, ShapeCollection, TextFrame, Paragraph en Portion, het conceptuele model dat PowerPoint zelf gebruikt. Voeg dia’s toe en verwijder ze, voeg AutoShapes, Tabellen en Connectors in, formatteer tekst op tekenniveau met vet, cursief, lettergrootte en kleur, pas solide of verloopvullingen toe, en voeg visuele effecten toe (schaduw, gloed, vervaging, reflectie).

RAII-semantiek zorgt voor betrouwbare opruiming van bronnen: de Presentation destructor maakt alle interne staat automatisch vrij. Onbekende XML onderdelen die tijdens het laden worden aangetroffen, worden bij het opslaan letterlijk bewaard, zodat round-tripping nooit inhoud vernietigt die de bibliotheek nog niet begrijpt. De bibliotheek vereist een C++20-conforme compiler. Voor extra functies, zie Aspose.Slides for C++ enterprise edition.

Presentatie- en dia-API

  • Maak en open PPTX: Maak nieuwe presentaties of open bestaande .pptx-bestanden via Presentation() of Presentation(path).
  • Dia’s toevoegen en verwijderen: Beheer de SlideCollection programmatisch met add_empty_slide(), remove() en remove_at().
  • AutoShapes: Voeg rechthoeken, ellipsen, lijnen en andere ShapeType geometrieën toe via add_auto_shape().
  • Tabellen en connectoren: Voeg gestructureerde tabelvormen en verbindingslijnen tussen vormen toe via add_connector().
  • Sprekersnotities: Lees en schrijf per-dia sprekersnotities via NotesSlideManager.
  • Threaded comments: Toegang tot commentaarthreads door pres.comment_authors() te itereren en hun bijbehorende commentaren.

Waar Aspose.Slides FOSS kan worden gebruikt

  • Rapportgeneratie: Bouw merkgebonden slide‑decks van gegevensbronnen zonder Office.
  • Sjabloonautomatisering: Vul PPTX-sjablonen met dynamische inhoud in CI/CD-pijplijnen.
  • Inhoudsmigratie: Lees bestaande presentaties en herstructureer of herstyle dia’s.
  • Embedded systemen: Verwerk PPTX‑bestanden in prestatie‑kritische of resource‑beperkte omgevingen.
  • Batch processing: Pas uniforme opmaakwijzigingen toe op grote bibliotheken met dia‑decks.

Tekstopmaak en visuele effecten

  • Karakterniveau-opmaak: Pas vet, cursief, lettergrootte en kleur toe op individuele Portion objecten via PortionFormat.
  • Effen en verloopvullingen: Stel de vormvulling in op een effen kleur of een lineair verloop met meerdere stops met behulp van FillFormat en FillType.
  • Schaduw- en gloeieffecten: Pas een buitenschaduw, gloed, vervaging en reflectie toe op elke vorm via EffectFormat.
  • Paragraafuitlijning: Stel links, gecentreerd, rechts of uitvullen uitlijning per alinea in met behulp van ParagraphFormat en set_alignment().
  • Round-trip safe: Onbekende XML onderdelen worden bij opnieuw opslaan letterlijk behouden.

Ontwikkelaarservaring

Aspose.Slides FOSS integreert via CMake FetchContent, dus er is geen handmatige download of systeemwijde installatie nodig. De bibliotheek wordt vanuit de broncode gebouwd naast uw project.

De API spiegelt het eigen objectmodel van PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), zodat iedereen die bekend is met het PowerPoint‑objectmodel de bibliotheek direct kan gebruiken. Het is MIT‑gelicentieerd, open source op GitHub, en vereist een C++20‑conforme compiler.

Maak een presentatie en voeg een vorm toe

RAII zorgt ervoor dat de Presentation destructor alle resources automatisch vrijgeeft wanneer het object buiten de scope valt. add_auto_shape() neemt een ShapeType enum, vervolgens x/y positie en breedte/hoogte in points — de text_frame van de shape biedt toegang om tekstinhoud in te stellen.

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)
 

Tekst opmaken en een vul-effect toepassen

Tekstopmaak werkt op het Portion-niveau — de kleinste eenheid van een reeks tekens. Open het opgeslagen bestand, navigeer naar het eerste gedeelte van de eerste alinea, en stel de lettertype‑eigenschappen direct in. Vulling van vormen is onafhankelijk: stel het vultype in op solid en wijs een kleur toe.

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

Veelgestelde vragen

Wat is Aspose.Slides FOSS voor C++?

Het is een gratis, MIT-gelicentieerde C++-bibliotheek voor het maken, lezen en bewerken van PowerPoint .pptx presentaties zonder Microsoft Office te vereisen.

Welke bestandsformaten worden ondersteund?

.pptx is het ondersteunde lees-/schrijfformaat. Exporteren naar PDF, HTML, SVG of afbeeldingen is niet beschikbaar in deze editie.

Vereist het Microsoft Office of PowerPoint?

Nee. Aspose.Slides FOSS is een zelfstandige C++-bibliotheek zonder afhankelijkheid van Microsoft Office, COM-automatisering of enige propriëtaire runtime.

Hoe installeer ik het?

Gebruik CMake FetchContent om de bibliotheek direct van GitHub te integreren. De bibliotheek vereist een C++20-conforme compiler.

Kan ik visuele effecten zoals schaduw en gloed toepassen?

Ja. De bibliotheek ondersteunt buitenste schaduw, gloed, vervaging en reflectie-effecten op elk vormobject via de EffectFormat API.

Gebruikt de bibliotheek RAII voor resourcebeheer?

Ja. De Presentation destructor geeft alle interne staat automatisch vrij, zodat expliciete opruiming niet nodig is.

Zal het round‑tripping van een PPTX onbekende inhoud vernietigen?

Nee. Onbekende XML-onderdelen die tijdens het laden worden aangetroffen, worden bij het opslaan letterlijk bewaard, zodat inhoud die de bibliotheek nog niet begrijpt nooit verloren gaat.

Waar kan ik de broncode vinden?

De bibliotheek is gelicentieerd onder de MIT-licentie en gehost op GitHub. Bugrapporten en pull‑requests zijn welkom.

  

Ondersteuning en leermiddelen

 Nederlands