Prezentációk megnyitása C++-ban

Bevezetés

Aspose.Slides for C++ betöltheti a PowerPoint és az OpenDocument prezentációkat fájlokból és adatfolyamokból. A prezentáció betöltése után ellenőrizheti a felépítését, szerkesztheti a diákot, kezelheti az erőforrásokat, és elmentheti az eredeti vagy egy másik támogatott formátumban.

A betöltési viselkedés testreszabható a LoadOptions osztályon keresztül. Például megadhat nyitó jelszót, a nagy bináris objektumokat a memórián kívül tarthatja, szabályozhatja a külső erőforrásokat, vagy kihagyhatja a beágyazott bináris adatokat.

Prezentációk megnyitása

Egy fájl vagy adatfolyam betöltése után megállapíthatja az eredeti prezentáció formátumát, hogy kiválassza, hogyan dolgozza fel az alkalmazás.

Egy meglévő prezentáció megnyitásához adja át a fájl útvonalát a Presentation konstruktorának. A prezentációt használat után engedje el, hogy a fájlkezelők, ideiglenes adatok és egyéb erőforrások időben felszabaduljanak.

Az alábbi C++ példa bemutatja, hogyan nyitható meg egy prezentáció és hogyan kérhető le a diák száma:

#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <system/console.h>

using namespace Aspose::Slides;
using namespace System;

auto presentation = MakeObject<Presentation>(u"sample.pptx");

Console::WriteLine(u"Slide count: {0}", presentation->get_Slides()->get_Count());

presentation->Dispose();

Jelszóval védett prezentációk megnyitása

A nyitó jelszó titkosítja a prezentáció tartalmát. A teljes prezentáció betöltéséhez adja át a helyes jelszót a LoadOptions::set_Password metódusnak, majd az opciókat a Presentation konstruktorának. A betöltés hibát jelez, ha a jelszó hiányzik vagy helytelen.

#include <DOM/ISlideCollection.h>
#include <DOM/LoadOptions.h>
#include <DOM/Presentation.h>
#include <system/console.h>

using namespace Aspose::Slides;
using namespace System;

auto loadOptions = MakeObject<LoadOptions>();
loadOptions->set_Password(u"open_password");

auto presentation = MakeObject<Presentation>(u"encrypted-presentation.pptx", loadOptions);

Console::WriteLine(u"Slide count: {0}", presentation->get_Slides()->get_Count());

presentation->Dispose();

A jelszódetektálásról, validálásról és titkosítási munkafolyamatokról lásd a Password-Protect Presentations oldalát. Ha egy titkosított prezentációt szándékosan nyilvános dokumentumtulajdonságokkal mentettek, ezek a tulajdonságok jelszó nélkül is olvashatók; lásd a Manage Presentation Properties részt.

Nagy prezentációk megnyitása

LoadOptions::get_BlobManagementOptions szabályozza, hogyan kezeli az Aspose.Slides a bináris nagy objektumokat, például képeket, hangot és videót. A forrásfájlt lezárhatja, engedélyezheti az ideiglenes fájlok használatát, és korlátozhatja a memóriában megtartott BLOB-adat mennyiségét.

Az alábbi C++ kód bemutatja egy nagy (például 2 GB) prezentáció betöltését:

#include <DOM/ISlide.h>
#include <DOM/LoadOptions.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <IBlobManagementOptions.h>
#include <PresentationLockingBehavior.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;

const String filePath = u"large-presentation.pptx";

auto loadOptions = MakeObject<LoadOptions>();
auto blobOptions = loadOptions->get_BlobManagementOptions();
blobOptions->set_PresentationLockingBehavior(PresentationLockingBehavior::KeepLocked);
blobOptions->set_IsTemporaryFilesAllowed(true);
blobOptions->set_MaxBlobsBytesInMemory(10 * 1024 * 1024);

auto presentation = MakeObject<Presentation>(filePath, loadOptions);

presentation->get_Slide(0)->set_Name(u"Large presentation");
presentation->Save(u"large-presentation-copy.pptx", SaveFormat::Pptx);

presentation->Dispose();

Külső erőforrások vezérlése

LoadOptions::set_ResourceLoadingCallback egy IResourceLoadingCallback megvalósítást fogad. A visszahívás helyettesítő adatot adhat meg, átirányíthat egy erőforrást, a alapértelmezett betöltőt használhatja, vagy kihagyhatja az erőforrást. Ez akkor hasznos, ha a prezentációk külső képeket tartalmaznak, amelyeket az alkalmazás-specifikus biztonsági vagy tárolási szabályok szerint kell feloldani.

#include <DOM/ISlideCollection.h>
#include <DOM/LoadOptions.h>
#include <DOM/Presentation.h>
#include <IResourceLoadingArgs.h>
#include <IResourceLoadingCallback.h>
#include <ResourceLoadingAction.h>
#include <system/console.h>
#include <system/io/file.h>
#include <system/string_comparison.h>

using namespace Aspose::Slides;
using namespace System;
using namespace System::IO;

class ImageLoadingHandler : public IResourceLoadingCallback
{
public:
    ResourceLoadingAction ResourceLoading(SharedPtr<IResourceLoadingArgs> args) override
    {
        auto isJpeg = args->get_OriginalUri().EndsWith(u".jpg", StringComparison::OrdinalIgnoreCase);
        if (!isJpeg || !File::Exists(u"approved-image.jpg"))
        {
            return ResourceLoadingAction::Skip;
        }

        auto imageData = File::ReadAllBytes(u"approved-image.jpg");
        args->SetData(imageData);
        return ResourceLoadingAction::UserProvided;
    }
};

auto loadOptions = MakeObject<LoadOptions>();
loadOptions->set_ResourceLoadingCallback(MakeObject<ImageLoadingHandler>());

auto presentation = MakeObject<Presentation>(u"presentation-with-external-images.pptx", loadOptions);
Console::WriteLine(u"Slide count: {0}", presentation->get_Slides()->get_Count());

presentation->Dispose();

Prezentációk betöltése beágyazott bináris objektumok nélkül

Egy prezentáció tartalmazhat beágyazott bináris adatot, amelyre egy alkalmazásnak nincs szüksége vagy nem kívánja megtartani. Példák:

Adja át a true értéket a LoadOptions::set_DeleteEmbeddedBinaryObjects metódusnak, hogy a betöltés során eltávolítsa ezeket a bináris adatokat. Mentse a betöltött prezentációt a tisztított eredmény megőrzéséhez.

Ez a beállítás csökkenti a nemkívánatos beágyazott terhelések kockázatát, de nem helyettesíti a teljes rosszindulatú kód- vagy tartalomszűrő rendszert.

#include <DOM/LoadOptions.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;

auto loadOptions = MakeObject<LoadOptions>();
loadOptions->set_DeleteEmbeddedBinaryObjects(true);

auto presentation = MakeObject<Presentation>(u"presentation-with-embedded-data.pptx", loadOptions);

presentation->Save(u"presentation-without-embedded-data.pptx", SaveFormat::Pptx);

presentation->Dispose();

GYIK

Hogyan deríthetem ki, hogy egy fájl sérült és nem nyitható meg?
Az Aspose.Slides betöltés közben parsing vagy formátum kivételt dob. Kezelje ezt a hibát külön a hibás jelszó hibától, hogy az alkalmazás pontosan tudja jelenteni az okot.

Mi történik, ha hiányoznak a szükséges betűtípusok?
A prezentáció még betölthető, de a renderelés és az export helyettesítő betűtípusokat használhat. Konfigurálhatja a betűtípus-helyettesítést vagy szállíthat egyedi betűtípusokat, hogy a kimenet előre jelezhetőbb legyen.

Betölt egy prezentáció a beágyazott médiát is?
A beágyazott hang és videó elérhető a prezentáció objektummodelljén keresztül. A külső erőforrások a konfigurált erőforrásbetöltési viselkedés szerint kerülnek feloldásra, és előfordulhat, hogy nem elérhetők, ha a helyük nem hozzáférhető.