Indledning
Aspose.Slides FOSS for C++ (aspose_slides_foss) er et gratis, open-source C ++20 bibliotek til at oprette og manipulere PowerPoint præsentationer programmatisk. Det er bygget helt i indfødt C ++, uden eksterne runtime afhængigheder ud over CMake 3.20+. Det giver udviklere fuld kontrol over PPTX filer uden at kræve Microsoft Office eller nogen proprietær software.
Biblioteket er udgivet under MIT-licensen, hvilket gør det egnet til både kommercielle og ikke-kommercielt projekter. Det offentlige API lever i Aspose::Slides::Foss navnefeltet og giver en rig objektmodel der dækker præsentationer, diapositiver, former, tabeller, tekstrammer, dokumentegenskaber, kommentarer og PPTX eksport.
Denne artikel går gennem kernens API-overflade: de klasser og metoder, du vil bruge oftest ved opbygning, formatering og gemme præsentationer.
Hvad der indgår i den
Præsentation og slidesstyring
Den Presentation klasse er indgangspunktet. Ved at oprette en ny instans får du et standard-slide, der straks er klar til indholdet. Du har adgang til slides gennem den ̋SlideCollection⌒ returneres af ∂slides ((() ̨ , som understøtter indexeret adgang, iteration, fjernelse og omordning.
#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);
Former og Autostiller
Hver slide udstiller et `ShapeCollection ■ via dets accessor for ̋shapes ((() ̨. Samlingen indeholder fabrikksmetoder til at tilføje forskellige former: ∂add_auto_shape for standardgeometriske former (rektangler, ellipser og trekant), ゚add-connector for linjekontaktører, ⌒add‐table i tabeller samt ゙add−pictureframe som billeder.
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);
ShapeCollection understøtter også ̋size (() ̆, ∂remove ( (()) ̇, (゚removere at (), ≫reorder (͡°), (⌒index_of (τo) ) ̨ og (∂clear (≈) ̄ for styring af former efter oprettelse.
Tekst- og afsnitformater
Former kan indeholde tekst via TextFrame. Brug ̋add_text_frame() ̇ på et ∂AutoShape∂ til at vedhæfte tekstindhold, eller få adgang til den eksisterende ramme gennem ゚text _freme (). Teksten er organiseret i afsnit, der hver indeholder en eller flere dele. Klassen ̓BasePortionFormat∂ udstiller skrifttypeformningsegenskaber såsom fedtegnet, kursivt, underlinet type, kapitalskrifter, slagtråd og skriftfarve.
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!"
Fuld, graderet og visuelle effekter
Hver form giver et FillFormat, der er tilgængeligt via ̋fill_format ((() ̆. Du kan indstille faste fyldninger, gradientfyldinger eller mønsterfyldninger gennem metoden ∂set_fill__type (). Gradientfyllinger konfigureres via objektet ゚GradiantFormet⌒, som understøtter lineære vinkler, gradimentform og farvestopper via GredientStopCollection`.
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);
Klassen EffectFormat (tilgås via ⌒effect_format()ヽ tilføjer glød, ydre skygge og bløde kanteffekter. Hver effekt aktiveres med en dedikeret metode (enable_glow_efpect (()), ̋enabile_outer_shadow_effects (()), ゚enaable_soft_edge_efect (().')) og konfigureres gennem dens returnerede objekt.
Tabeller
Tabeller oprettes med add_table() (') på formsamlingen. Du angives kolonnebredde og radhøjde som vektorer. Det returnerede objekt ̋Table udstiller kollektioner af ∂row (s) ̨ og ゚columns (ss), og individuelle objekter i cellen understøtter tekstindhold via textramme.
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
Dokumentegenskaber og kommentarer
Med klassen DocumentProperties kan du angive metadata som titel, forfatter, emne, søgeord, kategori, revisionnummer og tidsstempel. Tilgå den via præsentationsobjektet.
Du tilføjer forfattere med `add_author() ̋, og vedhæfter derefter kommentarer til bestemte slides på specifikke koordinater.
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);
Hurtig start
Bygning fra grunden
Biblioteket kræver CMake 3.20+ og en C++20-kompatibel compiler. Kloner repository’et og opbyg:
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
Mindste eksempel
#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;
}
Støttede formater
SaveFormat enum definerer alle eksportmål. Følgende formater bekræftes i kildekoden:
| Format | Extension | Read | Write |
|---|---|---|---|
| PPTX | .pptx | – | Yes |
| PPT | .ppt | – | Planned |
| PPSX | .ppsx | – | Planned |
| PPTM | .pptm | – | Planned |
| PPSM | .ppsm | – | Planned |
| POTX | .potx | – | Planned |
| POTM | .potm | – | Planned |
| POT | .pot | – | Planned |
| PPS | .pps | – | Planned |
| ODP | .odp | – | Planned |
| OTP | .otp | – | Planned |
| FODP | .fodp | – | Planned |
| – | Planned | ||
| XPS | .xps | – | Planned |
| HTML | .html | – | Planned |
| HTML5 | .html | – | Planned |
| TIFF | .tiff | – | Planned |
| GIF | .gif | – | Planned |
| SWF | .swf | – | Planned |
| MD | .md | – | Planned |
| XML | .xml | – | Planned |
Bemærk: I øjeblikket er kun PPTX-eksport implementeret. Andre formatværdier findes i SaveFormatenum for fremadkompatibilitet, men de er endnu ikke funktionelle. Metoden ̋save()⌒ producerer altid PP TX udgang uanset formatparameteren.
Open Source & Licensing
Aspose.Slides FOSS for C++ er udgivet under MIT-licensen. Du kan bruge det frit i personlige projekter, kommercielle applikationer og omfordelte biblioteker. Der findes ingen API nøgler, vandmærker eller brugsbegrænsninger. Den fulde kildekode er tilgængelig på GitHub på https://github.com/aspose-slides-foss/Aspose.
Hvordan man begynder
Er du klar til at integrere Aspose.Slides FOSS i dit C++ projekt? Her er de vigtigste ressourcer:
- Dokumentation: https://docs.aspose.org/slides/cpp/ for udviklervejledninger, vejledning og konceptuelle oversigter.
- Vidensbase: https://kb.aspose.org/slides/cpp/ for FAQ’er og vejledninger til artikler, der dækker almindelige opgaver.
- API-reference: https://references.aspose.org/slides/cpp/ for klasse efter klasse dokumentation af den fulde offentlige API.