Aspose.Slides FOSS за C++ е библиотека с лиценз MIT за работа с PowerPoint .pptx файлове. Интегрирайте я чрез CMake FetchContent и веднага започнете да създавате, четете и редактирате презентации, без да инсталирате Microsoft Office или какъвто и да е собственически runtime.
Библиотеката предоставя Presentation API, изградена около Presentation, Slide, ShapeCollection, TextFrame, Paragraph и Portion, концептуалния модел, използван от самия PowerPoint. Добавяйте и премахвайте слайдове, вмъквайте AutoShapes, Tables и Connectors, форматирайте текста на ниво символи с удебеляване, курсив, размер на шрифта и цвят, прилагайте плътни или градиентни запълнения и добавяйте визуални ефекти (сенка, сияние, размазване, отражение).
RAII семантиката осигурява надеждно почистване на ресурси: деструкторът на Presentation освобождава цялото вътрешно състояние автоматично. Неизвестните XML части, срещнати по време на зареждане, се запазват дословно при запазване, така че обратното преобразуване никога не унищожава съдържание, което библиотеката все още не разбира. Библиотеката изисква компилатор, съвместим с C++20. За допълнителни функции, вижте Aspose.Slides for C++ enterprise edition.
.pptx файлове чрез Presentation() или Presentation(path).SlideCollection с add_empty_slide(), remove() и remove_at().ShapeType геометрии чрез add_auto_shape().add_connector().NotesSlideManager.pres.comment_authors() и свързаните с тях коментари.Portion обекти чрез PortionFormat.FillFormat и FillType.EffectFormat.ParagraphFormat и set_alignment().Aspose.Slides FOSS се интегрира чрез CMake FetchContent, така че не е необходимо ръчно изтегляне или системно инсталиране. Библиотеката се компилира от изходния код заедно с вашия проект.
API‑то отразява собствената обектна модел на PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), така че всеки, запознат с обектния модел на PowerPoint, може веднага да използва библиотеката. Тя е лицензирана под MIT, с отворен код в GitHub и изисква компилатор, съвместим с C++20.
RAII гарантира, че деструкторът на Presentation освобождава всички ресурси автоматично, когато обектът излезе от обхвата. add_auto_shape() приема ShapeType изброяване, след това позиция x/y и ширина/височина в точки — text_frame на формата предоставя достъп за задаване на текстово съдържание.
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)
Форматирането на текста работи на ниво Portion — най‑малката единица от поредица от знаци. Отворете запазения файл, преминете към първата част от първия параграф и задайте свойствата на шрифта директно. Запълването на формата е независимо: задайте тип на запълването като плътен и задайте цвят.
#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;
}
Това е безплатна, лицензирана под MIT C++ библиотека за създаване, четене и редактиране на презентации PowerPoint .pptx без необходимост от Microsoft Office.
.pptx е поддържаният формат за четене/писане. Експортирането към PDF, HTML, SVG или изображения не е налично в това издание.
Не. Aspose.Slides FOSS е самостоятелна C++ библиотека без зависимост от Microsoft Office, COM автоматизация или какъвто и да е собственически runtime.
Използвайте CMake FetchContent, за да интегрирате библиотеката директно от GitHub. Библиотеката изисква компилатор, съвместим с C++20.
Да. Библиотеката поддържа външна сянка, светене, размазване и отражения върху всеки обект от тип shape чрез API EffectFormat.
Да. Деструкторът на Presentation освобождава цялото вътрешно състояние автоматично, така че не е необходимо изрично почистване.
Не. Неизвестните части на XML, срещнати по време на зареждане, се запазват дословно при запазване, така че съдържанието, което библиотеката все още не разбира, никога не се губи.
Библиотеката е лицензирана под MIT и се хоства в GitHub. Съобщения за грешки и pull request‑ове са добре дошли.