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ó:
IfNecessarycsak akkor alkalmazza a ZIP64 kiterjesztéseket, ha a bemutató meghaladja a fenti korlátokat. Ez az alapértelmezett mód.Neversoha nem használja a ZIP64 kiterjesztéseket.Alwaysmindig 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();
MEGJEGYZÉS
Amikor aZip64Mode.Never beállítással ment, egy PptxException keletkezik, ha a bemutató nem menthető ZIP32 formátumban.
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();
Info
Ez a beállítás segít csökkenteni a PPTX formátumba történő mentéshez szükséges időt.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();
Info
Az Aspose kifejlesztett egy ingyenes PowerPoint Splitter alkalmazást saját API-jával. Az alkalmazás lehetővé teszi a bemutató több fájlra bontását a kiválasztott diák új PPTX vagy PPT fájlként való mentésével.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.