Bemutatók mentése C++-ban

Áttekintés

Open Presentations in C++ bemutatta, hogyan használható a Presentation osztály egy bemutató megnyitásához. Ez a cikk megmagyarázza, hogyan hozhatunk létre és menthetünk bemutatókat. A Presentation osztály tartalmazza egy bemutató tartalmát. Legyen szó egy új bemutató létrehozásáról vagy egy meglévő módosításáról, a munka befejezése után menteni kell. Az Aspose.Slides for C++-bal fájlba vagy folyamba menthetünk. Ez a cikk ismerteti a bemutató mentésének különböző módjait.

Bemutatók mentése fájlokba

A bemutatót fájlba menthetjük a Presentation osztály Save metódusának meghívásával. A metódusnak át kell adni a fájl nevét és a mentési formátumot. Az alábbi példa azt mutatja, hogyan menthetünk egy bemutatót az Aspose.Slides segítségével.

// Példányosítsa a Presentation osztályt, amely egy prezentációfájlt képvisel.
auto presentation = MakeObject<Presentation>();

// Végezzen itt némi munkát...

// Mentse a prezentációt egy fájlba.
presentation->Save(u"Output.pptx", SaveFormat::Pptx);

presentation->Dispose();

Bemutatók mentése folyamatokra

A bemutatót egy kimeneti folyam átadásával menthetjük a Presentation osztály Save metódusának. A bemutató számos folyam típusba írható. Az alábbi példában egy új bemutatót hozunk létre, és fájlfolyamba mentjük.

// Példányosítsa a Presentation osztályt, amely egy prezentációfájlt képvisel.
auto presentation = MakeObject<Presentation>();

auto fileStream = MakeObject<FileStream>(u"Output.pptx", FileMode::Create);

// Mentse a prezentációt a folyamra.
presentation->Save(fileStream, SaveFormat::Pptx);

presentation->Dispose();
fileStream->Close();

Bemutatók mentése előre definiált nézettípussal

Az Aspose.Slides lehetővé teszi a PowerPoint által a generált bemutató megnyitásakor használt kezdeti nézet beállítását a ViewProperties osztályon keresztül. A set_LastView metódust a ViewType felsorolás egy értékével kell meghívni.

auto presentation = MakeObject<Presentation>();

presentation->get_ViewProperties()->set_LastView(ViewType::SlideMasterView);

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

Bemutatók mentése a szigorú Office Open XML formátumban

Az Aspose.Slides lehetővé teszi a bemutató mentését a szigorú Office Open XML formátumban. A mentéskor használja a PptxOptions osztályt, és állítsa be a Conformance tulajdonságát. Ha a Conformance.Iso29500_2008_Strict értéket adja meg, a kimeneti fájl a szigorú Office Open XML formátumban kerül mentésre.

Az alábbi példa egy bemutatót hoz létre, és a szigorú Office Open XML formátumban menti.

auto options = MakeObject<PptxOptions>();
options->set_Conformance(Conformance::Iso29500_2008_Strict);

// Példányosítsa a Presentation osztályt, amely egy prezentációfájlt képvisel.
auto presentation = MakeObject<Presentation>();

// Mentse a prezentációt a szigorú Office Open XML formátumban.
presentation->Save(u"StrictOfficeOpenXml.pptx", SaveFormat::Pptx, options);
presentation->Dispose();

Bemutatók mentése Office Open XML formátumban Zip64 módban

Az Office Open XML fájl egy ZIP archívum, amely 4 GB (2^32 bájt) korlátot szab a kicsomagolt és a tömörített méretre, valamint a teljes archívum méretére, és legfeljebb 65 535 (2^16‑1) fájlt engedélyez. A ZIP64 formátum kiterjesztések ezeket a korlátokat 2^64‑re emelik.

A IPptxOptions::set_Zip64Mode metódus lehetővé teszi a ZIP64 kiterjesztések használatának megválasztását Office Open XML fájl mentésekor.

Ez a metódus a következő módokkal használható:

  • IfNecessary csak akkor alkalmazza a ZIP64 kiterjesztéseket, ha a bemutató meghaladja a fenti korlátokat. Ez az alapértelmezett mód.
  • Never soha nem használja a ZIP64 kiterjesztéseket.
  • Always mindig használja a ZIP64 kiterjesztéseket.

Az alábbi kód bemutatja, hogyan menthetünk egy bemutatót PPTX‑ként ZIP64 kiterjesztésekkel engedélyezve:

auto pptxOptions = MakeObject<PptxOptions>();
pptxOptions->set_Zip64Mode(Zip64Mode::Always);

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

presentation->Save(u"OutputZip64.pptx", SaveFormat::Pptx, pptxOptions);
presentation->Dispose();

Bemutatók mentése a bélyegkép frissítése nélkül

A PptxOptions::set_RefreshThumbnail metódus szabályozza a bélyegkép generálását PPTX mentésekor:

  • Ha true, a bélyegkép mentés közben frissül. Ez az alapértelmezett.
  • Ha false, a jelenlegi bélyegkép megmarad. Ha a bemutatónak nincs bélyegképe, nem kerül generálásra.

Az alábbi kódban a bemutató PPTX‑ként mentésre kerül a bélyegkép frissítése nélkül.

auto pptxOptions = MakeObject<PptxOptions>();
pptxOptions->set_RefreshThumbnail(false);

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

presentation->Save(u"Output.pptx", SaveFormat::Pptx, pptxOptions);
presentation->Dispose();

Mentés előrehaladásának százalékos megjelenítése

Az IProgressCallback interfészt a ISaveOptions interfész set_ProgressCallback metódusán és az absztrakt SaveOptions osztályon keresztül használják. Egy IProgressCallback implementációt adjon meg a set_ProgressCallback segítségével, hogy a mentés előrehaladását százalékban kapja meg.

Az alábbi kódrészletek bemutatják, hogyan használja az IProgressCallback-et.

class ExportProgressHandler : public IProgressCallback
{
public:
    void Reporting(double progressValue)
    {
        // Használja itt a folyamat százalékos értékét.
        int progress = static_cast<int>(progressValue);

        Console::WriteLine(u"{0}% of the file has been converted.", progress);
    }
};
auto saveOptions = MakeObject<PdfOptions>();
saveOptions->set_ProgressCallback(MakeObject<ExportProgressHandler>());

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

presentation->Save(u"Output.pdf", SaveFormat::Pdf, saveOptions);
presentation->Dispose();

GYIK

Támogatja a „gyors mentést” (inkrementális mentés) úgy, hogy csak a változások íródnak?

Nem. A mentés minden alkalommal a teljes célfájlt hozza létre; az inkrementális „gyors mentés” nem támogatott.

Biztonságos-e ugyanazt a Presentation példányt több szálról menteni?

Nem. Egy Presentation példány nem szálbiztos (/slides/hu/cpp/multithreading/); csak egy szálról mentse.

Mi történik a hiperhivatkozásokkal és a külsőleg linkelt fájlokkal mentéskor?

A hiperhivatkozások megmaradnak. A külsőleg linkelt fájlok (például relatív útvonalakon hivatkozott videók) nem kerülnek automatikusan másolásra – biztosítsa, hogy a hivatkozott útvonalak elérhetők maradjanak.

Beállítható/fájlba menthető-e a dokumentum metaadata (Szerző, Cím, Cég, Dátum)?

Igen. A szabványos dokumentumtulajdonságok támogatottak, és a mentéskor a fájlba kerülnek.