Wprowadzenie

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx pliki w natywnym C++, bez zależności od Microsoft Office ani żadnego własnościowego środowiska uruchomieniowego.

Biblioteka jest przeznaczona dla programistów, którzy potrzebują programowo generować lub manipulować plikami prezentacji: automatyzować zestawy slajdów na podstawie danych, wyodrębniać tekst i metadane z przesłanych plików PPTX, budować pipeline’y raportowania oparte na prezentacjach lub wbudowywać tworzenie prezentacji w aplikacje desktopowe i serwerowe. Ponieważ aspose_slides_foss jest zbudowana przy użyciu CMake, kompiluje się i wdraża na Windows, macOS i Linux.

Kluczowe funkcje

  • Pełne wsparcie round‑trip dla PPTX: Otwórz dowolny .pptx plik, zmodyfikuj jego zawartość i zapisz ponownie, nie tracąc nieznanych części XML, których biblioteka jeszcze nie rozumie.
  • Zarządzanie slajdami: Dodawaj, usuwaj i iteruj slajdy przy użyciu prs.slides(); prezentacja rozpoczyna się od jednego pustego slajdu po utworzeniu Presentation.
  • AutoShapes, Tabele i Łączniki: Wstaw kształty za pomocą slide.shapes().add_auto_shape(), dane tabelaryczne za pomocą slide.shapes().add_table(), oraz wizualne łączniki między kształtami za pomocą slide.shapes().add_connector().
  • Formatowanie tekstu sformatowanego: Formatuj tekst na poziomie znaków przy użyciu PortionFormat: rozmiar czcionki, pogrubienie, kursywa, podkreślenie i kolor ARGB za pomocą FillType::SOLID i ColorFormat.
  • Typy wypełnień: Zastosuj FillType::SOLID, Gradient, Pattern, lub Picture wypełnienia do dowolnego kształtu.
  • Efekty wizualne: Zewnętrzny cień, poświata, miękka krawędź, rozmycie, odbicie i wewnętrzny cień za pomocą shape.effect_format().
  • 3D formatting: Fazowanie, kamera, zestaw oświetlenia, materiał i głębokość ekstruzji za pomocą shape.three_d_format().
  • Notatki prelegenta: Dołącz tekst notatek do każdego slajdu za pomocą notes_slide_manager().add_notes_slide().
  • Komentarze wątkowe:Dodaj komentarze z metadanymi autora i pozycją slajdu.
  • Osadzone obrazy: Osadź z ścieżki pliku, bufora pamięci lub strumienia.
  • Właściwości dokumentu: Odczyt i zapis podstawowych, aplikacyjnych i niestandardowych właściwości.

Rozpoczęcie pracy

Dodaj bibliotekę za pomocą CMake. Wymagany jest kompilator C++17.

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)
target_link_libraries(your_target PRIVATE aspose_slides_foss)

Utwórz swoją pierwszą prezentację z kształtem i zapisz ją:

#include <Aspose/Slides/Foss/presentation.h>

int main() {
    using namespace Aspose::Slides::Foss;

    Presentation prs;
    auto& slide = prs.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 400, 120
    );
    shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
    prs.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

Ten Presentation destruktor automatycznie zwalnia wszystkie wewnętrzne zasoby, gdy wychodzi poza zakres.

Przykład formatowania tekstu

#include <Aspose/Slides/Foss/presentation.h>

using namespace Aspose::Slides::Foss;

Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
auto& fmt = shape.text_frame()->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(28);
fmt.set_font_bold(NullableBool::TRUE);
fmt.fill_format().set_fill_type(FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(Color::from_argb(255, 0, 70, 127));
prs.save("formatted.pptx", SaveFormat::PPTX);

Obecne ograniczenia

W tej wersji następujące obszary zgłaszają wyjątki:

  • Wykresy, SmartArt i obiekty OLE
  • Animacje i przejścia slajdów
  • Eksport do PDF, HTML, SVG lub formatów obrazów
  • Hiperdłącza, ustawienia akcji, makra VBA i podpisy cyfrowe

Nieznane części XML napotkane podczas ładowania są zachowywane w niezmienionej formie przy zapisie, dzięki czemu pliki PPTX wygenerowane przez inne narzędzia mogą być bezpiecznie ponownie wczytywane.

Zobacz także