Aspose.Slides FOSS برای C++ یک کتابخانه تحت مجوز MIT برای کار با فایلهای PowerPoint .pptx است. آن را از طریق CMake FetchContent یکپارچه کنید و بلافاصله شروع به ایجاد، خواندن و ویرایش ارائهها کنید بدون اینکه نیاز به نصب Microsoft Office یا هر زماناجرای مالکیتی داشته باشید.
این کتابخانه یک API ارائه (Presentation) را که بر پایهٔ Presentation، Slide، ShapeCollection، TextFrame، Paragraph و Portion ساخته شده است، که مدل مفهومی مورد استفاده PowerPoint میباشد، ارائه میدهد. اسلایدها را اضافه و حذف کنید، AutoShapeها، جدولها و کانکتورها را وارد کنید، متن را در سطح کاراکتر با بولد، ایتالیک، اندازه و رنگ قلم قالببندی کنید، پرکنندههای ثابت یا گرادیان اعمال کنید و افکتهای بصری (سایه، درخشندگی، تاری، بازتاب) را اضافه کنید.
معنای RAII تضمین میکند که پاکسازی منابع بهصورت قابل اعتماد انجام شود: مخرب Presentation تمام وضعیت داخلی را بهصورت خودکار آزاد میکند. بخشهای XML ناشناسی که در هنگام بارگذاری مواجه میشوند، بهصورت دقیق هنگام ذخیره حفظ میشوند، بنابراین دورگرد (round‑tripping) هرگز محتوایی را که کتابخانه هنوز نمیفهمد، از بین نمیبرد. این کتابخانه به یک کامپایلر سازگار با C++20 نیاز دارد.
.pptx files via Presentation() or Presentation(path).SlideCollection with add_empty_slide(), remove(), and remove_at().ShapeType geometries via add_auto_shape().add_connector().NotesSlideManager.pres.comment_authors() and their associated comments.Portion objects via PortionFormat.FillFormat and FillType.EffectFormat.ParagraphFormat and set_alignment().Aspose.Slides FOSS integrates via CMake FetchContent, so no manual download or system-wide installation is needed. The library builds from source alongside your project.
The API mirrors PowerPoint’s own object model (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), so anyone familiar with the PowerPoint object model can use the library immediately. It is MIT-licensed, open-source on GitHub, and requires a C++20-compliant compiler.
RAII ensures the Presentation destructor releases all resources automatically when the object goes out of scope. add_auto_shape() takes a ShapeType enum, then x/y position and width/height in points — the shape’s text_frame provides access to set text content.
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;
}
Text formatting works at the Portion level — the smallest unit of a run of characters. Open the saved file, navigate to the first portion of the first paragraph, and set font properties directly. Shape fill is independent: set the fill type to solid and assign a color.
#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;
}
It is a free, MIT-licensed C++ library for creating, reading, and editing PowerPoint .pptx presentations without requiring Microsoft Office.
PPTX is the supported read/write format. Export to PDF, HTML, SVG, or images is not available in this edition.
No. Aspose.Slides FOSS is a standalone C++ library with no dependency on Microsoft Office, COM automation, or any proprietary runtime.
Use CMake FetchContent to integrate the library directly from GitHub. The library requires a C++20-compliant compiler.
Yes. The library supports outer shadow, glow, blur, and reflection effects on any shape object via the EffectFormat API.
Yes. The Presentation destructor releases all internal state automatically, so no explicit cleanup is needed.
No. Unknown XML parts encountered during load are preserved verbatim on save, so content the library does not yet understand is never lost.
The library is MIT-licensed and hosted on GitHub. Bug reports and pull requests are welcome.