Aspose.Slides FOSS для C++ — це бібліотека з ліцензією MIT для роботи з файлами PowerPoint .pptx. Інтегруйте її за допомогою CMake FetchContent і одразу починайте створювати, читати та редагувати презентації без встановлення Microsoft Office або будь‑якого пропрієтарного середовища виконання.
Бібліотека надає 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() приймає enum 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;
}
Це безкоштовна бібліотека C++ з ліцензією MIT для створення, читання та редагування презентацій PowerPoint .pptx без потреби у Microsoft Office.
.pptx — підтримуваний формат читання/запису. Експорт у PDF, HTML, SVG або зображення недоступний у цій версії.
Ні. Aspose.Slides FOSS — це автономна бібліотека C++ без залежності від Microsoft Office, автоматизації COM або будь-якого пропрієтарного середовища виконання.
Використовуйте CMake FetchContent, щоб інтегрувати бібліотеку безпосередньо з GitHub. Бібліотека вимагає компілятора, сумісного з C++20.
Так. Бібліотека підтримує зовнішню тінь, сяйво, розмиття та ефекти відображення на будь‑якому об’єкті форми через API EffectFormat.
Так. Деструктор Presentation автоматично звільняє весь внутрішній стан, тому явне очищення не потрібно.
Ні. Невідомі частини XML, які виявлені під час завантаження, зберігаються дослівно при збереженні, тому вміст, який бібліотека ще не розуміє, ніколи не втрачається.
Бібліотека має ліцензію MIT і розміщена на GitHub. Звіти про помилки та pull‑request’и вітаються.