Alacsony kódkódú prezentációs műveletek C++-ban

Áttekintés

Az Aspose::Slides::LowCode névtér statikus segédosztályokat biztosít a gyakori prezentációs műveletekhez. Ezek a segítők a gyakran használt objektummodell-munkafolyamatokat fókuszált metódusokba csomagolják, így kevesebb kóddal konvertálhat vagy egyesíthet fájlokat, feldolgozhatja a prezentáció elemeit, összegyűjtheti az alakzatokat, és eltávolíthatja a nem használt tartalmat.

Az alacsony kódszintű segítők akkor a leghasznosabbak, ha a művelet egy teljes fájlra vagy prezentációra vonatkozik, és az alapértelmezett munkafolyamat megfelel az igényeinek. Használja a teljes Aspose.Slides objektummodellt, ha finomabb irányítást igényel egyes diák, masterek, elrendezések, alakzatok, exportbeállítások vagy a prezentációs elemek közötti kapcsolatok felett.

Az alábbi táblázat összefoglalja a rendelkezésre álló segítőket:

Segédprogram Használat célja
Convert Prezentáció konvertálása más formátumba közvetlen fájl‑fájl hívással.
Merger Ugyanazon formátumú teljes prezentációs fájlok egyesítése.
ForEach Művelet végrehajtása minden diára, alakzatra, bekezdésre vagy szövegrészre.
Collect Alakzatok lekérdezése a teljes prezentációból ismételt feldolgozás vagy elemzés céljából.
Compress Nem használt masterek és elrendezések eltávolítása, valamint a beágyazott betűkészlet-adatok csökkentése.

Prezentáció konvertálása

Használja a Convert::AutoByExtension metódust, ha a kimeneti fájl kiterjesztése elegendő az exportformátum kiválasztásához. A metódus megnyitja a forrásprezentációt, a kimeneti útvonal alapján meghatározza a szükséges formátumot, és kiírja az eredményt.

#include <LowCode/Convert.h>

using namespace Aspose::Slides::LowCode;

Convert::AutoByExtension(u"input.pptx", u"output.pdf");

A Convert osztály dedikált metódusokat is biztosít PDF, SVG, JPEG, PNG és TIFF kimenethez. Használja a teljes objektummodellt, ha a konvertálás előtt meg kell vizsgálnia vagy módosítania a prezentációt, vagy olyan exportbeállítást kell konfigurálnia, amelyet a kiválasztott segédprogram nem tesz elérhetővé. Lásd a Convert Presentation oldalt a formátumspecifikus munkafolyamatokért és beállításokért.

Prezentációk egyesítése

Használja a Merger::Process metódust a teljes prezentációs fájlok egy hívással történő egyesítéséhez. A bemeneti prezentációknak azonos fájlformátummal kell rendelkezniük.

#include <LowCode/Merger.h>
#include <system/array.h>
#include <system/string.h>

using namespace Aspose::Slides::LowCode;

auto inputFiles = System::MakeArray<System::String>({u"part-1.pptx", u"part-2.pptx"});
Merger::Process(inputFiles, u"merged.pptx");

Ez a segédprogram akkor megfelelő, ha minden diát egy eredményfájlba kell hozzáfűzni anélkül, hogy egyenként választaná vagy térképezné őket. Használja a teljes objektummodellt, ha kiválasztott diák egyesítésére, célmaster vagy -elrendezés alkalmazására, szekciók kifejezett megőrzésére vagy különböző diaméretek egyeztetésére van szükség. Lásd a Merge Presentations oldalt ezekhez a forgatókönyvekhez.

Prezentációs elemek bejárása

A ForEach osztály minden kért típusú prezentációs elemhez meghív egy visszahívást. Elkerüli a beágyazott gyűjteményhurok használatát, és kényelmes a prezentáció egészére kiterjedő ellenőrzéshez vagy formázási módosításokhoz.

Az alábbi példa a ForEach::Slide, ForEach::Shape, ForEach::Paragraph és ForEach::Portion használatával szemlélteti a megfelelő elemek ellenőrzését:

#include <DOM/BaseSlide.h>
#include <DOM/Paragraph.h>
#include <DOM/Portion.h>
#include <DOM/Presentation.h>
#include <DOM/Shape.h>
#include <DOM/Slide.h>
#include <LowCode/ForEach.h>
#include <system/console.h>
#include <system/shared_ptr.h>
#include <functional>

using namespace Aspose::Slides;
using namespace Aspose::Slides::LowCode;

auto presentation = System::MakeObject<Presentation>(u"input.pptx");

auto slideCallback = std::function<void(System::SharedPtr<Slide>, int32_t)>([](System::SharedPtr<Slide> slide, int32_t index)
{
    System::Console::WriteLine(u"Slide {0}: {1} shapes", index, slide->get_Shapes()->get_Count());
});
ForEach::Slide(presentation, slideCallback);

auto shapeCallback = std::function<void(System::SharedPtr<Shape>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Shape> shape, System::SharedPtr<BaseSlide> slide, int32_t index)
{
    System::Console::WriteLine(u"Shape {0}: {1}", index, shape->get_Name());
});
ForEach::Shape(presentation, shapeCallback);

auto paragraphCallback = std::function<void(System::SharedPtr<Paragraph>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Paragraph> paragraph, System::SharedPtr<BaseSlide> slide, int32_t index)
{
    System::Console::WriteLine(u"Paragraph {0}: {1}", index, paragraph->get_Text());
});
ForEach::Paragraph(presentation, paragraphCallback);

auto portionCallback = std::function<void(System::SharedPtr<Portion>, System::SharedPtr<Paragraph>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Portion> portion, System::SharedPtr<Paragraph> paragraph, System::SharedPtr<BaseSlide> slide, int32_t index)
{
    System::Console::WriteLine(u"Portion {0}: {1}", index, portion->get_Text());
});
ForEach::Portion(presentation, portionCallback);

Alapértelmezés szerint a prezentációs szintű alakzat‑ és szövegbejárás a normál, master és layout diákot is tartalmazza. Az includeNotes paraméterrel ellátott túltöltések lehetővé teszik a jegyzetdiák feldolgozását is. Használjon közvetlen gyűjteményhurok‑iterációt, ha a bejárási sorrend, korai kilépés, a visszahívás előtti szűrés vagy a részletes szülő‑gyermek vezérlés fontos.

Alakzatok összegyűjtése

Használja a Collect::Shapes metódust, ha a prezentáció összes alakzatra kíván gyűjteményt, nem pedig egy visszahívást minden egyes alakzatra. Ez akkor hasznos, ha ugyanazt a halmazt többször kell szűrni, számlálni vagy feldolgozni.

#include <DOM/Presentation.h>
#include <DOM/Shape.h>
#include <LowCode/Collect.h>
#include <system/console.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::LowCode;

auto presentation = System::MakeObject<Presentation>(u"input.pptx");
auto shapes = Collect::Shapes(presentation);

for (const auto& shape : shapes)
{
    System::Console::WriteLine(shape->get_Name());
}

Használja a ForEach::Shape metódust, ha minden alakzatot azonnal kezelhet, és nincs szükség a begyűjtött eredmény megtartására.

Prezentáció tartalmának tömörítése

A Compress osztály képes eltávolítani a nem használt szerkezeti elemeket és csökkenteni a beágyazott betűkészlet-adatokat:

#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <LowCode/Compress.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace Aspose::Slides::LowCode;

auto presentation = System::MakeObject<Presentation>(u"input.pptx");

Compress::RemoveUnusedLayoutSlides(presentation);
Compress::RemoveUnusedMasterSlides(presentation);
Compress::CompressEmbeddedFonts(presentation);

presentation->Save(u"compressed.pptx", SaveFormat::Pptx);

Először távolítsa el a nem használt elrendezéseket, majd a nem használt mastereket, hogy a layout‑tisztítás után referálatlanná váló master is eltávolítható legyen. Mentse az optimalizált prezentációt új fájlba, ha később szüksége lehet az eredeti masterekre, elrendezésekre vagy a teljes beágyazott betűkészletre. További részletekért lásd a Slide Master és az Embedded Font oldalakat.

GYIK

Mikor használjam a low‑code API‑t a teljes objektummodell helyett?

Használja az alacsony kódszintű segítőket, ha egy szabványos művelet egy teljes fájlra vagy prezentációra vonatkozik, és nem igényel részletes irányítást az egyedi elemek felett. Használja a teljes objektummodellt, ha konkrét diák kiválasztására, master‑ és layout‑kapcsolatok vezérlésére, köztes állapot ellenőrzésére vagy olyan viselkedés konfigurálására van szükség, amelyet a segédprogram nem biztosít.

A Merger össze tud-e kapcsolni különböző fájlformátumú prezentációkat?

Nem. A Merger::Process csak azonos formátumú bemeneti prezentációkat fogad el. Először konvertálja a bemeneti fájlokat közös formátumba, például a Convert::AutoByExtension segítségével, majd egyesítse a konvertált fájlokat.

A ForEach feldolgozza a master, layout és jegyzetdiákat?

A ForEach::Slide a normál prezentációs diákon iterál. A prezentáció egészére kiterjedő ForEach::Shape, ForEach::Paragraph és ForEach::Portion műveletek alapértelmezés szerint a normál, master és layout diákot is tartalmazzák. Használja a includeNotes paramétert true‑ra állítva, ha a jegyzetdiákat is bele akarja vonni.

Mi a különbség a ForEach::Shape és a Collect::Shapes között?

Használja a ForEach::Shape metódust, ha minden alakzatot azonnal egy visszahíváson keresztül szeretne feldolgozni. Használja a Collect::Shapes metódust, ha egy olyan enumerálható eredményre van szüksége, amelyet megőriz, szűr, számol vagy többször bejárhat.

A Compress mindig kisebbé teszi a prezentáció fájlt?

Nem feltétlenül. Az eredmény attól függ, hogy a prezentáció tartalmaz‑e nem használt elrendezéseket, mastereket vagy beágyazott betűkészleteket nem használt karakterekkel. Ha ezek egyike sincs jelen, a megfelelő Compress műveletek nem feltétlenül csökkentik a fájl méretét.

A ForEach vagy a Compress által végrehajtott változtatások automatikusan mentődnek?

Nem. Ezek a segítők a memóriában betöltött Presentation objektumon dolgoznak. A ForEach visszahívásban vagy a Compress futtatása után hívja meg a Presentation::Save metódust a változtatások kiírásához.

Kapcsolódó cikkek