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 или какъвто и да е собственически runtime.

Библиотеката предоставя Presentation API, изградена около Presentation, Slide, ShapeCollection, TextFrame, Paragraph и Portion, концептуалния модел, използван от самия PowerPoint. Добавяйте и премахвайте слайдове, вмъквайте AutoShapes, Tables и Connectors, форматирайте текста на ниво символи с удебеляване, курсив, размер на шрифта и цвят, прилагайте плътни или градиентни запълнения и добавяйте визуални ефекти (сенка, сияние, размазване, отражение).

RAII семантиката осигурява надеждно почистване на ресурси: деструкторът на Presentation освобождава цялото вътрешно състояние автоматично. Неизвестните XML части, срещнати по време на зареждане, се запазват дословно при запазване, така че обратното преобразуване никога не унищожава съдържание, което библиотеката все още не разбира. Библиотеката изисква компилатор, съвместим с C++20. За допълнителни функции, вижте Aspose.Slides for C++ enterprise edition.

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

  • Създаване и отваряне на PPTX: Създавайте нови презентации или отваряйте съществуващи .pptx файлове чрез Presentation() или Presentation(path).
  • Add and remove slides: Програмирано управление на 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 pipelines.
  • Миграция на съдържание: Прочетете съществуващите презентации и преработете или пренаредете слайдовете.
  • Вградени системи: Обработвайте 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() приема 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;
}
 

Frequently Asked Questions

Какво е Aspose.Slides FOSS за C++?

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

Кои файлови формати се поддържат?

.pptx е поддържаният формат за четене/писане. Експортирането към PDF, HTML, SVG или изображения не е налично в това издание.

Изисква ли Microsoft Office или PowerPoint?

Не. Aspose.Slides FOSS е самостоятелна C++ библиотека без зависимост от Microsoft Office, COM автоматизация или какъвто и да е собственически runtime.

Как да го инсталирам?

Използвайте CMake FetchContent, за да интегрирате библиотеката директно от GitHub. Библиотеката изисква компилатор, съвместим с C++20.

Мога ли да приложа визуални ефекти като сянка и светене?

Да. Библиотеката поддържа външна сянка, светене, размазване и отражения върху всеки обект от тип shape чрез API EffectFormat.

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

Да. Деструкторът на Presentation освобождава цялото вътрешно състояние автоматично, така че не е необходимо изрично почистване.

Ще унищожи ли round‑tripping на PPTX неизвестно съдържание?

Не. Неизвестните части на XML, срещнати по време на зареждане, се запазват дословно при запазване, така че съдържанието, което библиотеката все още не разбира, никога не се губи.

Къде мога да намеря изходния код?

Библиотеката е лицензирана под MIT и се хоства в GitHub. Съобщения за грешки и pull request‑ове са добре дошли.

  

Ресурси за поддръжка и обучение

 Български