Aspose.Slides FOSS для C++ — это библиотека с лицензией MIT для работы с файлами PowerPoint .pptx. Интегрируйте её через CMake FetchContent и сразу начинайте создавать, читать и редактировать презентации без установки Microsoft Office или какого‑либо проприетарного runtime.
Библиотека предоставляет API презентаций, построенное вокруг Presentation, Slide, ShapeCollection, TextFrame, Paragraph и Portion — концептуальной модели, используемой самим PowerPoint. Добавляйте и удаляйте слайды, вставляйте AutoShapes, таблицы и соединители, форматируйте текст на уровне символов с помощью полужирного, курсивного начертания, размера шрифта и цвета, применяйте сплошные или градиентные заливки и добавляйте визуальные эффекты (тень, сияние, размытие, отражение).
Семантика RAII обеспечивает надёжную очистку ресурсов: деструктор Presentation автоматически освобождает всё внутреннее состояние. Неизвестные XML‑части, встреченные при загрузке, сохраняются дословно при сохранении, поэтому при круговом проходе содержимое, которое библиотека ещё не понимает, никогда не уничтожается. Для работы библиотеки требуется компилятор, поддерживающий C++17.
.pptx с помощью Presentation() или Presentation(path).SlideCollection с помощью add_clone(), remove() и remove_at().ShapeType через add_auto_shape().add_connector().NotesSlideManager.get_slide_comments().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++17.
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];
// Добавить прямоугольную AutoShape
auto& shape = slide.shapes().add_auto_shape(
Aspose::Slides::Foss::ShapeType::RECTANGLE,
50, 50, 400, 150
);
shape.text_frame()->set_text("Привет, Aspose.Slides!");
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
return 0;
}
Форматирование текста работает на уровне Portion — наименьшей единицы последовательности символов. Откройте сохранённый файл, перейдите к первой части первого абзаца и задайте свойства шрифта напрямую. Заливка фигуры независима: установите тип заливки в solid и задайте цвет.
#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];
// Жирный текст, 18 пунктов
portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion.portion_format().set_font_height(18);
// Сплошная заливка фона фигуры
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 или какого-либо проприетарного runtime.
Используйте CMake FetchContent для интеграции библиотеки напрямую из GitHub. Библиотека требует компилятор, совместимый с C++17.
Да. Библиотека поддерживает внешнюю тень, свечение, размытие и эффекты отражения для любого объектa формы через API EffectFormat.
Да. Деструктор Presentation автоматически освобождает всё внутреннее состояние, поэтому явная очистка не требуется.
Нет. Неизвестные XML‑части, обнаруженные при загрузке, сохраняются дословно при сохранении, поэтому содержимое, которое библиотека ещё не понимает, никогда не теряется.
Библиотека лицензирована по MIT и размещена на GitHub. Сообщения об ошибках и запросы на включение изменений приветствуются.