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

Aspose.Slides FOSS för C++

Skapa, läs och redigera PowerPoint-presentationer från C++ — gratis och öppen källkod, ingen Office-beroende krävs.

Öppen källkod C++-bibliotek för PowerPoint-presentationer

Aspose.Slides FOSS för C++ är ett MIT-licensierat bibliotek för att arbeta med PowerPoint .pptx-filer. Integrera det via CMake FetchContent och börja omedelbart skapa, läsa och redigera presentationer utan att installera Microsoft Office eller någon proprietär runtime.

Biblioteket exponerar ett Presentation‑API byggt kring Presentation, Slide, ShapeCollection, TextFrame, Paragraph och Portion, den konceptuella modell som PowerPoint själv använder. Lägg till och ta bort bilder, infoga AutoShapes, tabeller och anslutningar, formatera text på teckennivå med fet, kursiv, teckenstorlek och färg, applicera solida eller gradientfyllningar och lägg till visuella effekter (skugga, glöd, oskärpa, reflektion).

RAII-semantik säkerställer pålitlig resursrensning: Presentations destruktor frigör all intern status automatiskt. Okända XML-delar som påträffas under inläsning bevaras ordagrant vid sparning, så att rundresning aldrig förstör innehåll som biblioteket ännu inte förstår. Biblioteket kräver en C++20-kompatibel kompilator. För ytterligare funktioner, se Aspose.Slides for C++ enterprise edition.

Presentation- och bild-API

  • Skapa och öppna PPTX: Skapa nya presentationer eller öppna befintliga .pptx-filer via Presentation() eller Presentation(path).
  • Lägg till och ta bort bilder: Programmera hantera SlideCollection med add_empty_slide(), remove() och remove_at().
  • AutoShapes: Infoga rektanglar, ellipser, linjer och andra ShapeType geometrier via add_auto_shape().
  • Tabeller och anslutningar: Lägg till strukturerade tabellformer och anslutningslinjer mellan former via add_connector().
  • Talarnoter: Läs och skriv per‑slide talarnoter via NotesSlideManager.
  • Trådade kommentarer: Åtkomst till kommentartrådar genom att iterera pres.comment_authors() och deras tillhörande kommentarer.

Var Aspose.Slides FOSS kan användas

  • Rapportgenerering: Skapa varumärkesanpassade bildspel från datakällor utan Office.
  • Mallautomatisering: Fyll PPTX-mallar med dynamiskt innehåll i CI/CD-pipelines.
  • Innehållsmigrering: Läs befintliga presentationer och omstrukturera eller omstyla bilder.
  • Inbäddade system: Bearbeta PPTX-filer i prestandakritiska eller resursbegränsade miljöer.
  • Batch processing: Tillämpa enhetliga formateringsändringar över stora bildspelsbibliotek.

Textformatering och visuella effekter

  • Teckenformatering: Tillämpa fetstil, kursiv, teckenstorlek och färg på enskilda Portion objekt via PortionFormat.
  • Solida och gradientfyllningar: Ställ in formens fyllning till en solid färg eller en linjär gradient med flera stopp med hjälp av FillFormat och FillType.
  • Skugga- och glöd‑effekter: Applicera yttre skugga, glöd, oskärpa och reflektion på vilken form som helst via EffectFormat.
  • Styckejustering: Ställ in vänster, centrerad, höger eller justerad justering per stycke med ParagraphFormat och set_alignment().
  • Round-trip safe: Okända XML delar bevaras ordagrant vid återlagring.

Utvecklarupplevelse

Aspose.Slides FOSS integreras via CMake FetchContent, så ingen manuell nedladdning eller systemomfattande installation behövs. Biblioteket byggs från källkod tillsammans med ditt projekt.

API:et speglar PowerPoints egna objektmodell (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), så att alla som är bekanta med PowerPoint-objektmodellen kan använda biblioteket omedelbart. Det är MIT-licensierat, öppen källkod på GitHub, och kräver en C++20-kompatibel kompilator.

Skapa en presentation och lägg till en form

RAII säkerställer att Presentation destruktorn frigör alla resurser automatiskt när objektet går ur scope. add_auto_shape() tar en ShapeType enum, sedan x/y-position och bredd/höjd i punkter — shape’s text_frame ger åtkomst för att sätta textinnehåll.

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)
 

Formatera text och tillämpa en fyllningseffekt

Textformatering fungerar på Portion-nivå — den minsta enheten av en sekvens av tecken. Öppna den sparade filen, navigera till den första delen av det första stycket och ställ in teckensnittsegenskaperna direkt. Formfyllning är oberoende: sätt fyllningstypen till solid och tilldela en färg.

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

Vanliga Frågor

Vad är Aspose.Slides FOSS för C++?

Det är ett fritt, MIT-licensierat C++-bibliotek för att skapa, läsa och redigera PowerPoint .pptx-presentationer utan att kräva Microsoft Office.

Vilka filformat stöds?

.pptx är det stödjade läs/skriv-formatet. Export till PDF, HTML, SVG eller bilder är inte tillgängligt i den här utgåvan.

Kräver det Microsoft Office eller PowerPoint?

Nej. Aspose.Slides FOSS är ett fristående C++-bibliotek utan beroende av Microsoft Office, COM-automatisering eller någon proprietär runtime.

Hur installerar jag det?

Använd CMake FetchContent för att integrera biblioteket direkt från GitHub. Biblioteket kräver en C++20-kompatibel kompilator.

Kan jag tillämpa visuella effekter som skugga och glöd?

Ja. Biblioteket stöder yttre skugga, glöd, oskärpa och reflektionseffekter på alla formobjekt via EffectFormat API:t.

Använder biblioteket RAII för resurshantering?

Ja. Presentation-destruktorn frigör all intern status automatiskt, så ingen explicit städning behövs.

Kommer en round‑tripping av en PPTX att förstöra okänt innehåll?

Nej. Okända XML-delar som påträffas under inläsning bevaras ordagrant vid sparning, så innehåll som biblioteket ännu inte förstår går aldrig förlorat.

Var kan jag hitta källkoden?

Biblioteket är licensierat under MIT och finns på GitHub. Felrapporter och pull‑requests är välkomna.

  

Stöd och Lärande Resurser

 Svenska