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 | .ppt | – | Planirano |
| PPSX | .ppsx | – | Planirano |
| PPTM | .pptm | – | Planirano |
| PPSM | .ppsm | – | Planirano |
| POTX | .-Pokretni. | – | Planirano |
| POTM | .-Sve je u redu. | – | Planirano |
| POT | .-Kot za vodu. | – | Planirano |
| PPS | .pps | – | Planirano |
| ODP | .odp | – | Planirano |
| OTP | .otp (približno) | – | Planirano |
| FODP | .fodp | – | Planirano |
| – | Planirano | ||
| XPS | .xps | – | Planirano |
| HTML | .html (svrha) | – | Planirano |
| HTML5 | .html (svrha) | – | Planirano |
| TIFF | .-Ne, ne mogu. | – | Planirano |
| GIF | .Gif | – | Planirano |
| SWF | .swf | – | Planirano |
| MD | .md | – | Planirano |
| XML | .xml | – | Planirano |
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:
- Izvršenje: https://docs.aspose.org/slides/cpp/ za vodiče programera, tutorijale i konceptualne preglednice.
- Osnova znanja: https://kb.aspose.org/slides/cpp/ za članke s često postavljanim pitanjima i članci o općim zadacima.
- Odgovor na API: U ovom slučaju, to je bio samo jedan od razloga. U slučaju da se u skladu s člankom 13. stavku 1. točka (a) ne primjenjuje, Komisija može oduzeti odluku o izmjeni ili ukidanju ovog članka.