Úvodní článek
Aspose.Slides FOSS for C++ (aspose_slides_foss) je bezplatná open-source knihovna C++20 pro vytváření a manipulaci s PowerPoint prezentacemi programově. Je postavená zcela v nativním jazyce C++, bez externích závislostí na běžném čase mimo CMake 3.20 +, poskytuje vývojářům plnou kontrolu nad soubory PPTX bez nutnosti Microsoft Office nebo jakéhokoli proprietárního softwaru.
Knihovna je vydána pod licencí MIT, což ji činí vhodnou pro komerční i nekomerční projekty. Ve veřejném API žije v rámci systému Open Source Software (OSP). Aspose::Slides::Foss namespace a poskytuje bohatý objektový model pokrývající prezentace, snímky, tvary, tabulky a textové rámy. Dokumentační vlastnosti, komentáře a export PPTX.
Tento příspěvek prochází hlavním povrchem API: třídy a metody, které nejčastěji použijete při budování, formátování a ukládání prezentací.
Co se v ní nachází?
Představení a řízení snímků
Úřad pro bezpečnost a ochranu zdraví Presentation Vytvoření nové instance vám dává standardní snímku, která je okamžitě připravena pro obsah. Přístup k diapozitivu můžete udělat prostřednictvím aplikace ClassInstance a přihlásit se do ní pomocí přístupu na stránku classInStance. SlideCollection vrácen: slides(), který podporuje indexovaný přístup, iteraci, odstranění a přerozdělování.
#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);
Tvary a automatické tvary
Každý snímek ukazuje… ShapeCollection prostřednictvím svých shapes() Sbírka poskytuje výrobní metody pro přidání různých typů tvarů: add_auto_shape pro standardní geometrické tvary (přesměrovky, elipsy, trojúhelníky), add_connector pro spojovací zařízení, add_table pro tabulky a add_picture_frame pro snímky.
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);
Úřad pro bezpečnost a ochranu zdraví ShapeCollection také podporuje size(), remove(), remove_at(), reorder(), index_of(),a) clear() pro správu tvarů po vytvoření.
Formátování textu a odstavců
Tvary mohou obsahovat text prostřednictvím: TextFrame.Použijte . add_text_frame() na AutoShape připojit textový obsah nebo přístup k existujícímu rámu prostřednictvím text_frame().Text je rozdělen do odstavců, z nichž každý obsahuje jednu nebo více částí. BasePortionFormat třída odhaluje vlastnosti stylizace písma, včetně tučných, kurzivních, podtrženého typu, velkých písmen, přesah a barvy písmu.
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!"
Naplnění, gradient a vizuální efekty
Každý tvar poskytuje FillFormat přístupné prostřednictvím: fill_format().Můžete nastavit pevné plnění, gradient plní nebo vzor vyplňuje přes set_fill_type() Metodou je nastaven gradientový plnění prostřednictvím GradientFormat objekt, který podporuje lineární úhly, gradient tvar a barvy zastaví přes 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);
Úřad pro bezpečnost a ochranu zdraví EffectFormat třída (přístupná prostřednictvím effect_format()) přidává zář, vnější stín a efekt měkkých okrajů. Každý účinek je aktivován pomocí speciální metody (enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()) a je konfigurován prostřednictvím vráceného objektu.
Tabulky
Tabulky jsou vytvořeny s add_table() Vytváříte šířky sloupců a výšky řádků jako vektory. Table Objekty exponované rows() a) columns() kolekce a individuální Cell objekty podporují textový obsah prostřednictvím 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
Vlastnosti a poznámky dokumentu
Úřad pro bezpečnost a ochranu zdraví DocumentProperties class umožňuje nastavit metadatá jako název, autor, předmět, klíčová slova, kategorie, číslo revize a časové razítko. Přístup k němu prostřednictvím prezentačního objektu.
Komentáře jsou spravovány prostřednictvím: CommentAuthorCollection a) CommentCollection.Přidáte autory s … add_author(), pak připojte komentáře k konkrétním slidech na specifických souřadnicích.
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);
Rychlý start
Vybudování z původu
Knihovna vyžaduje CMake 3.20+ a C++20-schopný kompilátor. Klonovat úložiště a vytvořit:
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
Minimální příklad
#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;
}
Podporované formáty
Úřad pro bezpečnost a ochranu zdraví SaveFormat enum definuje všechny cíle vývozu. V zdrojovém kódu jsou potvrzeny tyto formáty:
| Formát | Rozšíření | Čtěte. | Píšeš. |
|---|---|---|---|
| PPTX | .pptx | – | Ano , ano . |
| PPT | .ppt | – | Plánované |
| PPSX | .ppsx | – | Plánované |
| PPTM | .pptm | – | Plánované |
| PPSM | .ppsm | – | Plánované |
| POTX | .potx | – | Plánované |
| POTM | .- Potm. | – | Plánované |
| POT | . nádobí | – | Plánované |
| PPS | .pps | – | Plánované |
| ODP | .odp | – | Plánované |
| OTP | .otp | – | Plánované |
| FODP | .fodp | – | Plánované |
| – | Plánované | ||
| XPS | .xps | – | Plánované |
| HTML | .html | – | Plánované |
| HTML5 | .html | – | Plánované |
| TIFF | .- TIFF. - Cože? | – | Plánované |
| GIF | .gif | – | Plánované |
| SWF | .swf | – | Plánované |
| MD | .md | – | Plánované |
| XML | .xml | – | Plánované |
Poznámka: V současné době je implementován pouze export PPTX. SaveFormat V současné době se na ně používá pro budoucí kompatibilitu, ale ještě nejsou funkční. save() metoda vždy vyprodukuje výstup PPTX bez ohledu na parametr formátu.
Open Source & Licence
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.
Jak začít?
Jste připraveni integrovat Aspose.Slides FOSS do vašeho projektu C++? Zde jsou klíčové zdroje:
- Dokumenty: https://docs.aspose.org/slides/cpp/ pro průvodce vývojářů, výukové programy a koncepční přehled.
- Základní znalosti: https://kb.aspose.org/slides/cpp/ pro FAQ a články o běžných úkolech.
- Odkaz na API: https://reference.aspose.org/slides/cpp/ pro dokumentaci třídy za třídou úplného veřejného API.