1. Продукты
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS for C++

Создавайте, читайте и редактируйте презентации PowerPoint из C++ — бесплатно и с открытым исходным кодом, без зависимости от Office.

Открытая C++ библиотека для презентаций PowerPoint

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.

API презентаций и слайдов

  • Создание и открытие PPTX: Создавайте новые презентации или открывайте существующие файлы .pptx с помощью Presentation() или Presentation(path).
  • Добавление и удаление слайдов: Программно управляйте SlideCollection с помощью add_clone(), remove() и remove_at().
  • AutoShapes: Вставляйте прямоугольники, эллипсы, линии и другие геометрии ShapeType через add_auto_shape().
  • Таблицы и соединители: Добавляйте структурированные формы таблиц и линии‑соединители между объектами с помощью add_connector().
  • Заметки докладчика: Читайте и записывайте заметки докладчика для каждого слайда через NotesSlideManager.
  • Ветвящиеся комментарии: Получайте ветки комментариев уровня слайда с помощью get_slide_comments().

Где можно использовать Aspose.Slides FOSS

  • Генерация отчетов: Создавайте фирменные наборы слайдов из источников данных без Office.
  • Автоматизация шаблонов: Заполняйте PPTX‑шаблоны динамическим контентом в конвейерах CI/CD.
  • Миграция контента: Читайте существующие презентации и перестраивайте или переоформляйте слайды.
  • Встраиваемые системы: Обрабатывайте файлы PPTX в средах с критичными требованиями к производительности или ограниченными ресурсами.
  • Пакетная обработка: Применяйте единообразные изменения форматирования к большим библиотекам наборов слайдов.

Форматирование текста и визуальные эффекты

  • Форматирование на уровне символов: Применяйте полужирный, курсив, размер шрифта и цвет к отдельным объектам Portion через PortionFormat.
  • Сплошные и градиентные заливки: Устанавливайте заливку фигуры сплошным цветом или линейным градиентом с несколькими остановками с помощью FillFormat и FillType.
  • Эффекты тени и свечения: Применяйте внешнюю тень, свечение, размытие и отражение к любой фигуре через EffectFormat.
  • Выравнивание абзаца: Устанавливайте выравнивание по левому краю, по центру, по правому краю или по ширине для каждого абзаца с помощью ParagraphFormat и set_alignment().
  • Безопасно при обратном проходе: Неизвестные части XML сохраняются дословно при повторном сохранении.

Опыт разработчика

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;
}

Часто задаваемые вопросы

Что такое Aspose.Slides FOSS для C++?

Это бесплатная C++ библиотека с лицензией MIT для создания, чтения и редактирования презентаций PowerPoint .pptx без необходимости в Microsoft Office.

Какие форматы файлов поддерживаются?

PPTX — поддерживаемый формат чтения/записи. Экспорт в PDF, HTML, SVG или изображения недоступен в этой версии.

Требуется ли Microsoft Office или PowerPoint?

Нет. Aspose.Slides FOSS — это автономная библиотека C++ без зависимости от Microsoft Office, автоматизации COM или какого-либо проприетарного runtime.

Как установить его?

Используйте CMake FetchContent для интеграции библиотеки напрямую из GitHub. Библиотека требует компилятор, совместимый с C++17.

Могу ли я применить визуальные эффекты, такие как тень и свечение?

Да. Библиотека поддерживает внешнюю тень, свечение, размытие и эффекты отражения для любого объектa формы через API EffectFormat.

Использует ли библиотека RAII для управления ресурсами?

Да. Деструктор Presentation автоматически освобождает всё внутреннее состояние, поэтому явная очистка не требуется.

Повредит ли повторный импорт‑экспорт PPTX неизвестный контент?

Нет. Неизвестные XML‑части, обнаруженные при загрузке, сохраняются дословно при сохранении, поэтому содержимое, которое библиотека ещё не понимает, никогда не теряется.

Где можно найти исходный код?

Библиотека лицензирована по MIT и размещена на GitHub. Сообщения об ошибках и запросы на включение изменений приветствуются.

  

Ресурсы поддержки и обучения

 Русский