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

Aspose.Slides FOSS для C++

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

Відкрита 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++20. Для додаткових можливостей дивіться Aspose.Slides for C++ enterprise edition.

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

  • Create and open PPTX: Створюйте нові презентації або відкривайте існуючі файли .pptx за допомогою Presentation() або Presentation(path).
  • Додавати та видаляти слайди: Програмно керуйте SlideCollection за допомогою add_empty_slide(), remove() та remove_at().
  • AutoShapes: Вставляйте прямокутники, еліпси, лінії та інші ShapeType геометрії за допомогою add_auto_shape().
  • Таблиці та з’єднувачі: Додайте структуровані форми таблиць та лінії з’єднання між формами через add_connector().
  • Speaker notes: Читати та записувати нотатки доповідача для кожного слайду через NotesSlideManager.
  • Тематичні коментарі: Отримуйте доступ до потоків коментарів, ітеруючи pres.comment_authors() та їх пов’язані коментарі.

Де 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++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;
}
 

Часті Питання

Що таке 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++20.

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

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

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

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

Чи призведе round‑tripping PPTX до знищення невідомого вмісту?

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

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

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

  

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

 Українська