1. Produkty
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS dla C++

Twórz, odczytuj i edytuj prezentacje PowerPoint z C++ — darmowe i otwartoźródłowe, bez wymogu zależności od Office.

Otwartoźródłowa biblioteka C++ do prezentacji PowerPoint

Aspose.Slides FOSS for C++ jest biblioteką na licencji MIT do pracy z plikami PowerPoint .pptx. Zintegruj ją za pomocą CMake FetchContent i od razu zacznij tworzyć, odczytywać i edytować prezentacje bez instalowania Microsoft Office ani żadnego własnościowego środowiska uruchomieniowego.

Biblioteka udostępnia API prezentacji zbudowane wokół Presentation, Slide, ShapeCollection, TextFrame, Paragraph i Portion, koncepcyjnego modelu używanego przez sam PowerPoint. Dodawaj i usuwaj slajdy, wstawiaj AutoShapes, Tables i Connectors, formatuj tekst na poziomie znaków z pogrubieniem, kursywą, rozmiarem i kolorem czcionki, stosuj wypełnienia jednolite lub gradientowe oraz dodawaj efekty wizualne (cień, poświata, rozmycie, odbicie).

Semantyka RAII zapewnia niezawodne czyszczenie zasobów: destruktor Presentation automatycznie zwalnia cały wewnętrzny stan. Nieznane części XML napotkane podczas ładowania są zachowywane dosłownie przy zapisie, więc round-tripping nigdy nie niszczy treści, której biblioteka jeszcze nie rozumie. Biblioteka wymaga kompilatora zgodnego z C++20. Aby uzyskać dodatkowe funkcje, zobacz Aspose.Slides for C++ enterprise edition.

API prezentacji i slajdów

  • Utwórz i otwórz PPTX: Utwórz nowe prezentacje lub otwórz istniejące pliki .pptx za pośrednictwem Presentation() lub Presentation(path).
  • Dodawanie i usuwanie slajdów: Programowo zarządzaj SlideCollection przy użyciu add_empty_slide(), remove() i remove_at().
  • AutoShapes: Wstaw prostokąty, elipsy, linie i inne ShapeType geometrie za pomocą add_auto_shape().
  • Tabele i łączniki: Dodaj strukturalne kształty tabel i linie łączników pomiędzy kształtami za pomocą add_connector().
  • Speaker notes: Odczytuj i zapisuj notatki prelegenta dla każdego slajdu za pomocą NotesSlideManager.
  • Threaded comments: Uzyskaj dostęp do wątków komentarzy, iterując pres.comment_authors() i ich powiązane komentarze.

Gdzie Aspose.Slides FOSS może być używany

  • Generowanie raportów: Twórz markowe zestawy slajdów z źródeł danych bez Office.
  • Automatyzacja szablonów: Wypełniaj szablony PPTX dynamiczną treścią w potokach CI/CD.
  • Migracja treści: Przeczytaj istniejące prezentacje i przekształć lub przeprojektuj slajdy.
  • Systemy wbudowane: Przetwarzaj pliki PPTX w środowiskach o krytycznej wydajności lub ograniczonych zasobach.
  • Batch processing: Zastosuj jednolite zmiany formatowania w dużych bibliotekach slajdów.

Formatowanie tekstu i efekty wizualne

  • Formatowanie na poziomie znaków: Zastosuj pogrubienie, kursywę, rozmiar czcionki i kolor do poszczególnych obiektów Portion za pomocą PortionFormat.
  • Wypełnienia stałe i gradientowe: Ustaw wypełnienie kształtu na stały kolor lub liniowy gradient z wieloma przystankami przy użyciu FillFormat i FillType.
  • Efekty cienia i poświaty: Zastosuj zewnętrzny cień, poświatę, rozmycie i odbicie do dowolnego kształtu za pomocą EffectFormat.
  • Wyrównanie akapitu: Ustaw wyrównanie do lewej, wyśrodkowane, prawe lub justowanie dla każdego akapitu przy użyciu ParagraphFormat i set_alignment().
  • Bezpieczne przy round‑trip: Nieznane części XML są zachowywane dosłownie przy ponownym zapisie.

Doświadczenie dewelopera

Aspose.Slides FOSS integruje się przez CMake FetchContent, więc nie jest potrzebne ręczne pobieranie ani instalacja systemowa. Biblioteka buduje się ze źródeł razem z Twoim projektem.

API odzwierciedla własny model obiektowy PowerPointa (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), więc każdy zaznajomiony z modelem obiektowym PowerPointa może od razu używać biblioteki. Jest licencjonowane na licencji MIT, otwartoźródłowe na GitHubie i wymaga kompilatora zgodnego z C++20.

Utwórz prezentację i dodaj kształt

RAII zapewnia, że destruktor Presentation zwalnia wszystkie zasoby automatycznie, gdy obiekt wychodzi poza zakres. add_auto_shape() przyjmuje wyliczenie ShapeType, a następnie pozycję x/y oraz szerokość/wysokość w punktach — text_frame kształtu zapewnia dostęp do ustawiania treści tekstowej.

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)
 

Formatuj tekst i zastosuj efekt wypełnienia

Formatowanie tekstu działa na poziomie Portion — najmniejszej jednostki ciągu znaków. Otwórz zapisany plik, przejdź do pierwszej części pierwszego akapitu i ustaw właściwości czcionki bezpośrednio. Wypełnienie kształtu jest niezależne: ustaw typ wypełnienia na stały i przypisz kolor.

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

Najczęściej Zadawane Pytania

Czym jest Aspose.Slides FOSS dla C++?

Jest to darmowa, na licencji MIT biblioteka C++ do tworzenia, odczytywania i edytowania prezentacji PowerPoint .pptx bez wymogu posiadania Microsoft Office.

Jakie formaty plików są obsługiwane?

.pptx jest obsługiwanym formatem odczytu/zapisu. Eksport do PDF, HTML, SVG lub obrazów nie jest dostępny w tej edycji.

Czy wymaga Microsoft Office lub PowerPoint?

Nie. Aspose.Slides FOSS jest samodzielną biblioteką C++ bez zależności od Microsoft Office, automatyzacji COM ani żadnego własnościowego środowiska uruchomieniowego.

Jak to zainstalować?

Użyj CMake FetchContent, aby zintegrować bibliotekę bezpośrednio z GitHub. Biblioteka wymaga kompilatora zgodnego z C++20.

Czy mogę zastosować efekty wizualne, takie jak cień i poświata?

Tak. Biblioteka obsługuje efekty zewnętrznego cienia, poświaty, rozmycia i odbicia na dowolnym obiekcie kształtu za pośrednictwem API EffectFormat.

Czy biblioteka używa RAII do zarządzania zasobami?

Tak. Destruktor Presentation zwalnia cały wewnętrzny stan automatycznie, więc nie jest potrzebne jawne czyszczenie.

Czy przetwarzanie w obie strony pliku PPTX zniszczy nieznaną zawartość?

Nie. Nieznane części XML napotkane podczas ładowania są zachowywane dosłownie przy zapisie, więc treść, której biblioteka jeszcze nie rozumie, nigdy nie zostaje utracona.

Gdzie mogę znaleźć kod źródłowy?

Biblioteka jest licencjonowana na licencji MIT i hostowana na GitHub. Zgłoszenia błędów oraz pull requesty są mile widziane.

  

Zasoby Wsparcia i Nauki

 Polski