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

Aspose.Slides FOSS для C++

Створюйте, читайте та редагуйте презентації PowerPoint з C++ — безкоштовно та з відкритим кодом, без залежності від Office.

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

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++17.

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

  • Створення та відкриття PPTX: Створюйте нові презентації або відкривайте існуючі файли .pptx за допомогою Presentation() або Presentation(path).
  • Додавання та видалення слайдів: Програмно керуйте SlideCollection за допомогою add_clone(), remove() та remove_at().
  • AutoShapes: Вставляйте прямокутники, еліпси, лінії та інші геометрії ShapeType за допомогою add_auto_shape().
  • Tables та Connectors: Додавайте структуровані таблиці та лінії‑з’єднувачі між формами за допомогою add_connector().
  • Нотатки доповідача: Читайте та записуйте нотатки доповідача для кожного слайду через NotesSlideManager.
  • Threaded comments: Доступ до ланцюжків коментарів на рівні слайдів за допомогою get_slide_comments().

Де можна використовувати Aspose.Slides FOSS

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

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

  • Character-level formatting: Застосуйте жирний, курсив, розмір шрифту та колір до окремих об’єктів Portion за допомогою PortionFormat.
  • Solid and gradient fills: Встановіть заливку форми у вигляді суцільного кольору або багатокрокового лінійного градієнту за допомогою FillFormat і FillType.
  • Shadow and glow effects: Застосуйте зовнішню тінь, сяйво, розмиття та відображення до будь‑якої форми за допомогою EffectFormat.
  • Paragraph alignment: Встановіть вирівнювання ліворуч, по центру, праворуч або за шириною для кожного абзацу за допомогою ParagraphFormat і set_alignment().
  • Round-trip safe: Невідомі XML‑частини зберігаються дослівно при повторному збереженні.

Досвід розробника

Aspose.Slides FOSS інтегрується через CMake FetchContent, тому немає потреби у ручному завантаженні чи системному встановленні. Бібліотека збирається з вихідного коду разом з вашим проєктом.

API відображає власну модель об’єктів PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), тому будь-хто, хто знайомий з моделлю об’єктів PowerPoint, може одразу користуватися бібліотекою. Вона має ліцензію MIT, є відкритим кодом на GitHub і вимагає компілятора, сумісного з C++17.

Створіть презентацію та додайте фігуру

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

    // Додати прямокутну 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];

    // Жирний, 18pt текст
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Solid заповнення фону форми
    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 або будь‑якого пропрієтарного середовища виконання.

Як його встановити?

Використовуйте CMake FetchContent, щоб інтегрувати бібліотеку безпосередньо з GitHub. Бібліотека вимагає компілятора, сумісного з C++17.

Чи можу я застосовувати візуальні ефекти, такі як тінь і сяйво?

Так. Бібліотека підтримує зовнішню тінь, підсвічування, розмиття та ефекти відображення для будь‑якого об’єкта форми через API EffectFormat.

Чи використовує бібліотека RAII для управління ресурсами?

Так. Деструктор Presentation автоматично звільняє весь внутрішній стан, тому явне очищення не потрібно.

Чи знищить повторне зчитування PPTX невідомий вміст?

Ні. Невідомі XML‑частини, виявлені під час завантаження, зберігаються дослівно при збереженні, тому вміст, який бібліотека ще не розуміє, ніколи не втрачається.

Де можна знайти вихідний код?

Бібліотека має ліцензію MIT і розміщена на GitHub. Повідомлення про помилки та pull‑request’и вітаються.

  

Ресурси Підтримки та Навчання

 Українська