Introducere

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx fișiere în C++ nativ, fără dependență de Microsoft Office sau de orice runtime proprietar.

Biblioteca este concepută pentru dezvoltatori care trebuie să genereze sau să manipuleze fișiere de prezentare programatic: automatizarea seturilor de diapozitive din date, extragerea textului și a metadatelor din fișiere PPTX încărcate, construirea de fluxuri de raportare bazate pe prezentări sau încorporarea creării de prezentări în aplicații desktop și server. Deoarece aspose_slides_foss este construit cu CMake, se compilează și se distribuie pe Windows, macOS și Linux.

Caracteristici cheie

  • Suport complet round‑trip pentru PPTX: Deschide orice .pptx fișier, modifică conținutul său și salvează-l înapoi fără a pierde părțile XML necunoscute pe care biblioteca nu le înțelege încă.
  • Gestionarea diapozitivelor: Adaugă, elimină și iterează diapozitivele utilizând prs.slides(); prezentarea începe cu un diapozitiv gol după construirea unui Presentation.
  • AutoForme, Tabele și Conectori: Inserează forme prin slide.shapes().add_auto_shape(), date tabulare prin slide.shapes().add_table(), și conectori vizuali între forme prin slide.shapes().add_connector().
  • Formatare text îmbogățit: Formatați textul la nivel de caracter cu PortionFormat: dimensiune font, îngroșat, cursiv, subliniere și culoare ARGB prin FillType::SOLID și ColorFormat.
  • Tipuri de umplere: Aplicați FillType::SOLID, Gradient, Pattern, sau Picture umpleri la orice formă.
  • Efecte vizuale: Umbră exterioară, strălucire, margine moale, estompare, reflexie și umbră interioară prin shape.effect_format().
  • 3D formatting: Bisel, cameră, rig de lumină, material și adâncime de extrudare prin shape.three_d_format().
  • Note ale prezentatorului: Atașează textul notelor la fiecare diapozitiv prin notes_slide_manager().add_notes_slide().
  • Comentarii în fir: Adaugă comentarii cu metadatele autorului și poziția diapozitivului.
  • Imagini încorporate: Încorporează din calea fișierului, din bufferul de memorie sau din flux.
  • Proprietăți ale documentului: Citește și scrie proprietăți de bază, ale aplicației și personalizate.

Începeți

Adăugați biblioteca prin CMake. Este necesar un compilator C++17.

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ți prima prezentare cu o formă și salvați-o:

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

The Presentation destructor eliberează toate resursele interne automat când iese din domeniu.

Exemplu de formatare a textului

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

Limitări curente

Următoarele zone generează excepții în această versiune:

  • Grafice, SmartArt și obiecte OLE
  • Animații și tranziții de diapozitiv
  • Export în PDF, HTML, SVG sau formate de imagine
  • Hiperlinkuri, setări de acțiune, macro-uri VBA și semnături digitale

Părțile XML necunoscute întâlnite în timpul încărcării sunt păstrate exact la salvare, astfel încât fișierele PPTX produse de alte instrumente să poată fi reutilizate în siguranță.

Vezi și