Aspose.Slides FOSS pentru C++ este o bibliotecă licențiată MIT pentru lucrul cu fișiere PowerPoint .pptx. Integrați‑o prin CMake FetchContent și începeți imediat să creați, să citiți și să editați prezentări fără a instala Microsoft Office sau orice runtime proprietar.
Biblioteca expune un API de Prezentare construit în jurul Presentation, Slide, ShapeCollection, TextFrame, Paragraph și Portion, modelul conceptual utilizat de PowerPoint însuși. Adăugați și eliminați slide-uri, inserați AutoShapes, Tables și Connectors, formatați textul la nivel de caracter cu bold, italic, dimensiunea și culoarea fontului, aplicați umpleri solide sau degrade și adăugați efecte vizuale (shadow, glow, blur, reflection).
Semantica RAII asigură curățarea fiabilă a resurselor: destructorul Presentation eliberează automat tot starea internă. Părțile necunoscute XML întâlnite în timpul încărcării sunt păstrate literalmente la salvare, astfel încât procesul de round-tripping nu distruge niciodată conținutul pe care biblioteca încă nu îl înțelege. Biblioteca necesită un compilator compatibil cu C++20. Pentru funcționalități suplimentare, vedeți Aspose.Slides for C++ enterprise edition.
.pptx existente prin Presentation() sau Presentation(path).SlideCollection cu add_empty_slide(), remove() și remove_at().ShapeType geometrii prin add_auto_shape().add_connector().NotesSlideManager.pres.comment_authors() și comentariile asociate.Portion prin PortionFormat.FillFormat și FillType.EffectFormat.ParagraphFormat și set_alignment().Aspose.Slides FOSS se integrează prin CMake FetchContent, astfel încât nu este necesar să descărcați manual sau să instalați la nivel de sistem. Biblioteca se compilează din sursă alături de proiectul dumneavoastră.
API-ul reflectă modelul de obiecte propriu al PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), astfel încât oricine este familiarizat cu modelul de obiecte PowerPoint poate folosi biblioteca imediat. Este licențiat MIT, open-source pe GitHub și necesită un compilator compatibil cu C++20.
RAII asigură că destructorul Presentation eliberează toate resursele automat când obiectul iese din domeniu. add_auto_shape() primește un enum ShapeType, apoi poziția x/y și lățimea/înălțimea în puncte — proprietatea text_frame a formei oferă acces pentru a seta conținutul textului.
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)
Formatarea textului funcționează la nivelul Portion — cea mai mică unitate a unui șir de caractere. Deschide fișierul salvat, navighează la prima parte a primului paragraf și setează proprietățile fontului direct. Umplerea formei este independentă: setează tipul de umplere la solid și atribuie o culoare.
#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;
}
Este o bibliotecă gratuită, licențiată MIT, C++ pentru crearea, citirea și editarea prezentărilor PowerPoint .pptx fără a necesita Microsoft Office.
.pptx este formatul suportat pentru citire/scriere. Exportul în PDF, HTML, SVG sau imagini nu este disponibil în această ediție.
Nu. Aspose.Slides FOSS este o bibliotecă C++ independentă, fără dependență de Microsoft Office, automatizare COM sau orice runtime proprietar.
Folosiți CMake FetchContent pentru a integra biblioteca direct de pe GitHub. Biblioteca necesită un compilator compatibil cu C++20.
Da. Biblioteca suportă efecte de umbră externă, strălucire, estompare și reflexie pe orice obiect de tip formă prin API-ul EffectFormat.
Da. Destructorul Presentation eliberează automat toate stările interne, astfel că nu este necesară o curățare explicită.
Nu. Părțile necunoscute XML întâlnite în timpul încărcării sunt păstrate literalmente la salvare, astfel că conținutul pe care biblioteca încă nu îl înțelege nu se pierde niciodată.
Biblioteca este licențiată sub MIT și găzduită pe GitHub. Raportările de erori și cererile de pull sunt binevenite.