Introducere
Aspose.Slides FOSS for C++ (aspose_slides_foss) este o bibliotecă C++20 gratuită, open-source pentru crearea și manipularea prezentărilor PowerPoint în mod programatic. Construit în întregime în C ++ nativ fără dependențe externe de timp de rulare dincolo de CMake 3.20 +, oferă dezvoltatorilor control complet asupra fișierelor PPTX fără a necesita Microsoft Office sau orice software proprietar.
Biblioteca este eliberată sub licența MIT, ceea ce o face potrivită atât pentru proiecte comerciale cât și non-comerciale. API publicul trăiește în sistemul de codare a aplicațiilor web. Aspose::Slides::Foss namespace și oferă un model de obiect bogat care acoperă prezentări, diapozitive, forme, tabele, cadre text, proprietăți ale documentelor, comentarii și export PPTX.
Acest post merge prin suprafața API de bază: clasele și metodele pe care le veți folosi cel mai des atunci când construiți, formatati și salvați prezentări.
Ce înseamnă?
Prezentare și gestionarea diapozitivelor
În ceea ce priveşte Presentation crearea unei noi instante vă oferă un diapozitiv implicit care este imediat gata pentru conținut. accesați diapositive prin intermediul SlideCollection returnată de: slides(), care susține accesul indexat, iterarea, eliminarea și reordonarea.
#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);
Forme și AutoForme
Fiecare diapozitiv expune o ShapeCollection prin intermediul său. shapes() Colecția oferă metode de fabricație pentru adăugarea diferitelor tipuri de forme: add_auto_shape pentru forme geometrice standard (rectangulare, elipsă, triunghi), add_connector pentru conectoarele de linie, add_table pentru tabele și add_picture_frame pentru imagini.
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);
În ceea ce priveşte ShapeCollection susţine şi size(), remove(), remove_at(), reorder(), index_of(), și clear() pentru gestionarea formelor după creare.
Formatarea textului şi a paragrafelor
Formele pot deține text prin intermediul: TextFrame.- Foloseste-l . add_text_frame() pe o AutoShape pentru a atașa conținut de text sau să acceseze cadrul existent prin intermediul text_frame().Textul este organizat în paragrafe, fiecare conţinând una sau mai multe părţi. BasePortionFormat clasa expune proprietățile stilului de tip font, inclusiv grăsime, italic, tipul subliniat, capitalizare, strângere și culoarea fontului.
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!"
Efecte de umplere, gradiente și efecte vizuale
Fiecare formă oferă o FillFormat accesibil prin intermediul: fill_format().Puteţi seta umpluturi solide, gradiente sau modele prin intermediul sistemului de control. set_fill_type() Metodă de completare a gradientelor prin intermediul sistemului de calcul al gradului. GradientFormat obiect, care susține unghiuri liniare, forma gradientului și coloarea se oprește prin intermediul 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);
În ceea ce priveşte EffectFormat clasa (accesat prin intermediul effect_format()) adaugă efecte de strălucire, umbră exterioară și margini moi.enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()) și configurate prin obiectul său returnat.
Tabelul 1
Tabelurile sunt create cu: add_table() În cazul în care nu există o formă de vector, atunci trebuie să fie prezentate dimensiunile ale coloanei. Table Obiectul expus rows() și de: columns() colectii, și individuale Cell Obiecte suport conținut de text prin intermediul 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
Proprietăți și comentarii ale documentului
În ceea ce priveşte DocumentProperties class vă permite să setați metadate cum ar fi titlul, autorul, subiectul , cuvintele cheie, categoria, numărul de revizuire și timestamp. Accesați-l prin obiectului prezentare .
Comentariile sunt gestionate prin intermediul: CommentAuthorCollection și de: CommentCollection.Adăugaţi autori cu: add_author(), apoi atașează comentarii la diapozitive specifice, cu coordonate specifique.
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);
Început rapid
Construirea de la origini
Biblioteca necesită CMake 3.20+ și un compilator compatibil cu C++20. Clonați depozitul și construiți:
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
Exemplu minim
#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;
}
Formatele suportate
În ceea ce priveşte SaveFormat enum definește toate obiectivele de export. Următoarele formaturi sunt confirmate în codul sursă:
| Formatul | Extindere | Citeşte. | Scrie . |
|---|---|---|---|
| PPTX | .pptx | – | Da, sunt. |
| PPT | .ppt | – | Planificată |
| PPSX | .ppsx | – | Planificată |
| PPTM | .pptm | – | Planificată |
| PPSM | .ppsm | – | Planificată |
| POTX | .potx | – | Planificată |
| POTM | .- Potm. | – | Planificată |
| POT | .pot | – | Planificată |
| PPS | .pps | – | Planificată |
| ODP | .odp | – | Planificată |
| OTP | .otp | – | Planificată |
| FODP | .fodp | – | Planificată |
| – | Planificată | ||
| XPS | .xps | – | Planificată |
| HTML | .html (în limba engleză) | – | Planificată |
| HTML5 | .html (în limba engleză) | – | Planificată |
| TIFF | .- Nu , nu . | – | Planificată |
| GIF | .gif | – | Planificată |
| SWF | .swf | – | Planificată |
| MD | .md | – | Planificată |
| XML | .xml | – | Planificată |
Notă: În prezent, este implementată doar exportul PPTX. Există alte valori de format în sistemele de date ale PCP și PSD. SaveFormat În plus, în cazul în care un sistem de securitate este disponibil pentru compatibilitate cu viitorul, nu există încă o soluţie funcţională. save() metoda produce întotdeauna ieșire PPTX, indiferent de parametrul formatului.
Open Source & Licențiere
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.
Cum să începem?
Sunteți gata să integrați Aspose.Slides FOSS în proiectul dvs. C++? Iată resursele cheie:
- Documentație: https://docs.aspose.org/slides/cpp/ pentru ghiduri de dezvoltare, tutoriale și prezentări conceptuale.
- Baza de cunoştinţe: https://kb.aspose.org/slides/cpp/ pentru FAQ-uri și articole cu instrucțiuni care acoperă sarcinile comune.
- Referință API: https://reference.aspose.org/slides/cpp/ pentru documentarea clasei pe clasă a API publică completă.