Uvod u članak

Aspose.Slides FOSS for C++ (aspose_slides_foss) je slobodna, open-source C++20 knjižnica za stvaranje i manipulaciju PowerPoint prezentacijama programskim. Izgrađen u potpunosti na izvornom C ++ bez vanjskih ovisnosti o vremenu pokretanja izvan CMake 3.20+, daje razvođačima punu kontrolu nad PPTX datotekama bez potrebe za Microsoft Officeom ili bilo kojim vlasničkim softverom .

Biblioteka je objavljena pod licencom MIT-a, što ju čini pogodnom za komercijalne i nekomercijalne projekte. Aspose::Slides::Foss namespace i pruža bogat objektni model koji pokriva prezentacije, slajdove, oblike, tabele, okvirke teksta, svojstva dokumenata, komentare i PPTX izvoz.

Ovaj post prolazi kroz osnovnu API površinu: klase i metode koje ćete najčešće koristiti pri izgradnji, formataciji i pohranjivanju prezentacija.


Što je uključeno u to?

Predstavljanje i upravljanje slajdovima

U skladu s člankom 1. Presentation Ako kreirate novi primjer, dobivate podrazumijevan slajd koji je odmah spreman za sadržaj. SlideCollection vraćeno od strane: slides(), koji podržava indeksirani pristup, iteraciju, uklanjanje i preuređivanje.

#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;

Presentation pres;
auto& slide = pres.slides()[0]; // first slide
// Work with the slide...
pres.save("output.pptx", SaveFormat::PPTX);

Oblike i Autooblike

Svaki slajd otkriva… ShapeCollection kroz svoje shapes() Sastava sadrži fabričke metode za dodavanje različitih oblika: add_auto_shape za standardne geometrijske oblike (prostokruga, elipsa, trokutova), add_connector za priključnike linija, add_table za stolove, i add_picture_frame za slike.

auto& slide = pres.slides()[0];

// Add a rectangle
auto& rect = slide.shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 100);

// Add an ellipse
auto& ellipse = slide.shapes().add_auto_shape(
    ShapeType::ELLIPSE, 400, 50, 150, 150);

// Add a connector between shapes
auto& conn = slide.shapes().add_connector(
    ShapeType::BENT_CONNECTOR3, 0, 0, 1, 1);

U skladu s člankom 1. ShapeCollection također podržava size(), remove(), remove_at(), reorder(), index_of(), i clear() za upravljanje oblikom nakon stvaranja.

Formatiranje teksta i stavka

Oblici mogu zadržati tekst putem: TextFrame.- Koristi. add_text_frame() na dnevnom redu AutoShape Pridružiti tekst sadržaja, ili pristup postojeći okvir kroz text_frame().Tekst je organiziran u odlomke, a svaki od njih sadrži jedan ili više dijelova. BasePortionFormat klasa otkriva svojstva stiliranja fontova, uključujući i dvostruke, italicne, podrazumevani tipovi, velika slova, striktna prelazna boja.

auto& shape = pres.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 100, false);
shape.add_text_frame("Hello, world!");
auto text = shape.text_frame()->text(); // "Hello, world!"

Napunjavanje, gradijent i vizualni efekti

Svaki oblik pruža FillFormat dostupna putem: fill_format().Možete postaviti čvrste ispunjavanja, gradijent punjenja ili obrazac puni kroz set_fill_type() Metoda. Gradientna popunjavanja su konfigurirana kroz GradientFormat predmet, koji podržava linearne kuta, gradijent oblika i boja zaustavlja preko GradientStopCollection.

auto& shape = slide.shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 150);
shape.fill_format().set_fill_type(FillType::GRADIENT);
auto& gf = shape.fill_format().gradient_format();
gf.set_gradient_shape(GradientShape::LINEAR);
gf.set_linear_gradient_angle(45);
gf.gradient_stops().add(0.0f, Color::blue);
gf.gradient_stops().add(1.0f, Color::red);

U skladu s člankom 1. EffectFormat klasa (dolasak putem effect_format()U tom slučaju, u skladu s člankom 73. stavkom 2. točaka (a) i (b), Komisija je odlučila da se primjenjuje na sljedeće:enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()) i konfiguriran putem povratnog objekta.

Sljedeći članak

Tabele su kreirane s: add_table() Na formira kolekcije. Vi pružate širine kolona i visine redova kao vektore. Vratio je Table objekat eksponuje rows() i u članku 1. columns() kolekcije i pojedinačne Cell objekti podržavaju tekst sadržaj putem TextFrame.

std::vector<double> col_widths = {100, 150, 200};
std::vector<double> row_heights = {40, 40, 40};
auto& table = slide.shapes().add_table(
    50, 50, col_widths, row_heights);
// table.rows().size() == 3
// table.columns().size() == 3

Oznake i komentari dokumenta

U skladu s člankom 1. DocumentProperties class omogućuje postavljanje metapodataka kao što su naslov, autor, predmet, ključne riječi, kategorija, broj revizije i časovni oznakci. Pristupite mu putem objekta prezentacije.

Komentari se upravljaju putem: CommentAuthorCollection i u članku 1. CommentCollection.Dodaš autorice sa: add_author(), a zatim priložite komentare na određene slajdove u određenim koordinatama.

Presentation pres;
auto& author = pres.comment_authors().add_author("Alice", "A");
auto& slide = pres.slides()[0];
auto& comment = author.comments().add_comment(
    "Review note", slide, PointF(2.0f, 3.0f), now);

Brzi početak

Izgradnja iz izvora

Biblioteka zahtijeva CMake 3.20+ i C++20-sposobni kompiljer. Klonirajte repozitorij i izgradite:

git clone https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
cd Aspose.Slides-FOSS-for-Cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Minimalni primjer

#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];

    // Add a shape with text
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 300, 100, false);
    shape.add_text_frame("Hello from Aspose.Slides FOSS!");

    // Apply a solid fill
    shape.fill_format().set_fill_type(FillType::SOLID);
    shape.fill_format().solid_fill_color().set_color(Color::blue);

    // Save
    pres.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

Podržani formati

U skladu s člankom 1. SaveFormat U izvornom kodu potvrđeni su sljedeći formati:

Format:Proračunska sredstvaČitaj.Pišite.
PPTX.pptx (Novi tekst)- Da, u redu.
PPT.pptPlanirano
PPSX.ppsxPlanirano
PPTM.pptmPlanirano
PPSM.ppsmPlanirano
POTX.-Pokretni.Planirano
POTM.-Sve je u redu.Planirano
POT.-Kot za vodu.Planirano
PPS.ppsPlanirano
ODP.odpPlanirano
OTP.otp (približno)Planirano
FODP.fodpPlanirano
PDF.pdfPlanirano
XPS.xpsPlanirano
HTML.html (svrha)Planirano
HTML5.html (svrha)Planirano
TIFF.-Ne, ne mogu.Planirano
GIF.GifPlanirano
SWF.swfPlanirano
MD.mdPlanirano
XML.xmlPlanirano

Upis: Trenutno se primjenjuje samo PPTX izvoz. SaveFormat U ovom slučaju, to je vrlo važno. save() metoda uvijek proizvodi PPTX izlaz bez obzira na parametar formata.


Otvoreni izvor i licenciranje

Aspose.Slides FOSS for C++ is released under the MIT license. You can use it freely in personal projects, commercial applications, and redistributed libraries. There are no API keys, watermarks, or usage limits. The full source code is available on GitHub at https://github.com/aspose-slides-foss/Aspose.Slides - FOSS-for-Cpp.


Početak

Spremni ste za integraciju Aspose.Slides FOSS u svoj C++ projekt? Evo ključnih resursa: