Ukládání prezentací v C++
Přehled
Otevření prezentací v C++ popisuje, jak použít třídu Presentation k otevření prezentace. Tento článek vysvětluje, jak vytvářet a ukládat prezentace. Třída Presentation obsahuje obsah prezentace. Ať už vytváříte prezentaci od nuly nebo upravujete existující, budete ji chtít po dokončení uložit. S Aspose.Slides pro C++ můžete uložit do souboru nebo streamu. Tento článek popisuje různé způsoby ukládání prezentace.
Ukládání prezentací do souborů
Uložte prezentaci do souboru voláním metody Save třídy Presentation. Předáte metodě název souboru a formát ukládání. Následující příklad ukazuje, jak uložit prezentaci pomocí Aspose.Slides.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
auto presentation = MakeObject<Presentation>();
// Proveďte zde nějakou práci...
// Uložte prezentaci do souboru.
presentation->Save(u"Output.pptx", SaveFormat::Pptx);
presentation->Dispose();
Ukládání prezentací do streamů
Můžete uložit prezentaci do streamu předáním výstupního streamu metodě Save třídy Presentation. Prezentaci lze zapisovat do mnoha typů streamů. V níže uvedeném příkladu vytvoříme novou prezentaci a uložíme ji do souborového streamu.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
auto presentation = MakeObject<Presentation>();
auto fileStream = MakeObject<FileStream>(u"Output.pptx", FileMode::Create);
// Uložte prezentaci do streamu.
presentation->Save(fileStream, SaveFormat::Pptx);
presentation->Dispose();
fileStream->Close();
Ukládání prezentací s předdefinovaným typem zobrazení
Aspose.Slides vám umožňuje nastavit počáteční zobrazení, které PowerPoint použije při otevření vygenerované prezentace, prostřednictvím třídy ViewProperties. Použijte metodu set_LastView s hodnotou z výčtu ViewType.
auto presentation = MakeObject<Presentation>();
presentation->get_ViewProperties()->set_LastView(ViewType::SlideMasterView);
presentation->Save(u"SlideMasterView.pptx", SaveFormat::Pptx);
presentation->Dispose();
Ukládání prezentací ve formátu Strict Office Open XML
Aspose.Slides vám umožňuje uložit prezentaci ve formátu Strict Office Open XML. Použijte třídu PptxOptions a při ukládání nastavte její vlastnost conformance. Pokud nastavíte Conformance.Iso29500_2008_Strict, výstupní soubor bude uložen ve formátu Strict Office Open XML.
Níže uvedený příklad vytvoří prezentaci a uloží ji ve formátu Strict Office Open XML.
auto options = MakeObject<PptxOptions>();
options->set_Conformance(Conformance::Iso29500_2008_Strict);
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
auto presentation = MakeObject<Presentation>();
// Uložte prezentaci ve formátu Strict Office Open XML.
presentation->Save(u"StrictOfficeOpenXml.pptx", SaveFormat::Pptx, options);
presentation->Dispose();
Ukládání prezentací ve formátu Office Open XML v režimu Zip64
Soubor Office Open XML je archiv ZIP, který uvaluje limity 4 GB (2^32 bajtů) na nekomprimovanou velikost libovolného souboru, komprimovanou velikost libovolného souboru i celkovou velikost archivu a také omezuje archiv na 65 535 (2^16‑1) souborů. Rozšíření formátu ZIP64 tato omezení zvyšují na 2^64.
Metoda IPptxOptions::set_Zip64Mode vám umožňuje zvolit, kdy použít rozšíření ZIP64 při ukládání souboru Office Open XML.
Tato metoda může být použita s následujícími režimy:
IfNecessarypoužívá rozšíření ZIP64 pouze pokud prezentace překročí výše uvedená omezení. Toto je výchozí režim.Nevernikdy nevyužívá rozšíření ZIP64.Alwaysvždy využívá rozšíření ZIP64.
Následující kód demonstruje, jak uložit prezentaci jako PPTX s povolenými rozšířeními ZIP64:
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();
NOTE
Když ukládáte sZip64Mode.Never, je vyhozena PptxException, pokud prezentaci nelze uložit ve formátu ZIP32.
Ukládání prezentací bez obnovení miniatury
Metoda PptxOptions::set_RefreshThumbnail řídí generování miniatury při ukládání prezentace do PPTX:
- Pokud je nastavena na
true, miniatura se během ukládání obnoví. Toto je výchozí nastavení. - Pokud je nastavena na
false, aktuální miniatura je zachována. Pokud prezentace nemá miniaturu, nebude žádná generována.
V níže uvedeném kódu je prezentace uložena do PPTX bez obnovení její miniatury.
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
Tato volba pomáhá zkrátit čas potřebný k uložení prezentace ve formátu PPTX.Získávání aktualizací průběhu ukládání v procentech
Rozhraní IProgressCallback se používá prostřednictvím metody set_ProgressCallback, která je součástí rozhraní ISaveOptions a abstraktní třídy SaveOptions. Přiřaďte implementaci [IProgressCallback] pomocí set_ProgressCallback, abyste získali aktualizace průběhu ukládání v procentech.
Následující úryvky kódu ukazují, jak použít IProgressCallback.
class ExportProgressHandler : public IProgressCallback
{
public:
void Reporting(double progressValue)
{
// Použijte zde hodnotu procenta postupu.
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
Aspose vyvinulo bezplatnou aplikaci PowerPoint Splitter pomocí svého vlastního API. Aplikace vám umožní rozdělit prezentaci do více souborů uložením vybraných snímků jako nové soubory PPTX nebo PPT.Často kladené otázky
Je podporováno “rychlé ukládání” (inkrementální ukládání), aby se zapisovaly jen změny?
Ne. Ukládání při každém uložení vytvoří celý cílový soubor; inkrementální “rychlé ukládání” není podporováno.
Je bezpečné (thread‑safe) uložit stejnou instanci Presentation z více vláken?
Ne. Instance Presentation není thread‑safe; ukládejte ji z jediného vlákna.
Co se stane s hypertextovými odkazy a externě odkazovanými soubory při ukládání?
Hyperlinky jsou zachovány. Externě odkazované soubory (např. videa pomocí relativních cest) nejsou automaticky zkopírovány – ujistěte se, že odkazované cesty zůstávají dostupné.
Mohu nastavit/uložit metadata dokumentu (Autor, Název, Společnost, Datum)?
Ano. Standardní vlastnosti dokumentu jsou podporovány a budou při ukládání zapsány do souboru.