Introduktion

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx filer i ren C++, utan beroende av Microsoft Office eller någon proprietär runtime.

Biblioteket är utformat för utvecklare som behöver generera eller manipulera presentationsfiler programatiskt: automatisera bildspel från data, extrahera text och metadata från uppladdade PPTX-filer, bygga presentationsbaserade rapporteringspipeline, eller bädda in presentationsskapande i skrivbords- och serverapplikationer. Eftersom aspose_slides_foss är byggt med CMake, det kompileras och distribueras på Windows, macOS och Linux.

Nyckelfunktioner

  • Full round-trip PPTX-stöd: Öppna vilken .pptx fil, ändra dess innehåll och spara tillbaka utan att förlora okända XML-delar som biblioteket ännu inte förstår.
  • Bildhantering: Lägg till, ta bort och iterera bilder med hjälp av prs.slides(); presentationen startar med en tom bild efter att ha konstruerat en Presentation.
  • AutoShapes, Tabeller och Anslutningar: Infoga former via slide.shapes().add_auto_shape(), tabulär data via slide.shapes().add_table(), och visuella anslutningar mellan former via slide.shapes().add_connector().
  • Rik textformatering: Formatera text på teckennivå med PortionFormat: teckenstorlek, fetstil, kursiv, understrykning och ARGB-färg via FillType::SOLID och ColorFormat.
  • Fylltyper: Tillämpa FillType::SOLID, Gradient, Pattern, eller Picture fyller till vilken form som helst.
  • Visuella effekter: Yttre skugga, glöd, mjuk kant, oskärpa, reflektion och inre skugga via shape.effect_format().
  • 3D formatting: Avfasning, kamera, ljusrigg, material och extruderingsdjup via shape.three_d_format().
  • Talarnoter: Bifoga noteringstext till varje bild via notes_slide_manager().add_notes_slide().
  • Trådade kommentarer: Lägg till kommentarer med författarmetadata och bildposition.
  • Inbäddade bilder: Bädda in från filsökväg, minnesbuffert eller ström.
  • Dokumentegenskaper: Läs och skriv kärn-, app- och anpassade egenskaper.

Komma igång

Lägg till biblioteket via CMake. En C++17-kompilator krävs.

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)

Skapa din första presentation med en form och spara den:

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

Den Presentation destruktorn frigör alla interna resurser automatiskt när den går ur scope.

Exempel på textformatering

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

Aktuella begränsningar

Följande områden kastar undantag i den här versionen:

  • Diagram, SmartArt och OLE-objekt
  • Animationer och bildövergångar
  • Exportera till PDF, HTML, SVG eller bildformat
  • Hyperlänkar, åtgärdsinställningar, VBA-makron och digitala signaturer

Okända XML-delar som påträffas under inläsning bevaras ordagrant vid sparande, så PPTX-filer som skapats av andra verktyg kan round‑tripas säkert.

Se även