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
.pptxfiș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 unuiPresentation. - AutoForme, Tabele și Conectori: Inserează forme prin
slide.shapes().add_auto_shape(), date tabulare prinslide.shapes().add_table(), și conectori vizuali între forme prinslide.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 prinFillType::SOLIDșiColorFormat. - Tipuri de umplere: Aplicați
FillType::SOLID,Gradient,Pattern, sauPictureumpleri 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ță.