Ú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átRozšířeníČtěte.Píšeš.
PPTX.pptxAno , ano .
PPT.pptPlánované
PPSX.ppsxPlánované
PPTM.pptmPlánované
PPSM.ppsmPlánované
POTX.potxPlánované
POTM.- Potm.Plánované
POT. nádobíPlánované
PPS.ppsPlánované
ODP.odpPlánované
OTP.otpPlánované
FODP.fodpPlánované
PDF.pdfPlánované
XPS.xpsPlánované
HTML.htmlPlánované
HTML5.htmlPlánované
TIFF.- TIFF. - Cože?Plánované
GIF.gifPlánované
SWF.swfPlánované
MD.mdPlánované
XML.xmlPlá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: