Ukládání prezentací v .NET

Přehled

Open Presentations in C# popisuje, jak použít třídu Presentation k otevření prezentace. Tento článek vysvětluje, jak vytvořit a uložit prezentace. Třída Presentation obsahuje obsah prezentace. Ať už vytváříte prezentaci od nuly nebo upravujete již existující, budete ji chtít po dokončení uložit. S Aspose.Slides pro .NET můžete uložit do souboru nebo proudu. Tento článek popisuje různé způsoby uložení prezentace.

Ukládání prezentací do souborů

Uložte prezentaci do souboru voláním metody Save třídy Presentation. Předávejte názvy souboru a formát uložení metodě. Následující příklad ukazuje, jak uložit prezentaci pomocí Aspose.Slides.

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
using (Presentation presentation = new Presentation())
{
    // Proveďte zde nějakou práci...
    
    // Uložte prezentaci do souboru.
    presentation.Save("Output.pptx", SaveFormat.Pptx);
}

Ukládání prezentací do proudů

Můžete uložit prezentaci do proudu předáním výstupního proudu metodě Save třídy Presentation. Prezentaci lze zapsat do mnoha typů proudů. V níže uvedeném příkladu vytvoříme novou prezentaci a uložíme ji do souborového proudu.

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
using (Presentation presentation = new Presentation())
{
    using (FileStream fileStream = new FileStream("Output.pptx", FileMode.Create))
    {
        // Uložte prezentaci do proudu.
        presentation.Save(fileStream, SaveFormat.Pptx);
    }
}

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. Nastavte vlastnost LastView na hodnotu z výčtu ViewType.

using (Presentation presentation = new Presentation())
{
    presentation.ViewProperties.LastView = ViewType.SlideMasterView;
    presentation.Save("SlideMasterView.pptx", SaveFormat.Pptx);
}

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 nastavte její vlastnost Conformance při ukládání. 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.

PptxOptions options = new PptxOptions()
{
    Conformance = Conformance.Iso29500_2008_Strict
};

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
using (Presentation presentation = new Presentation())
{
    // Uložte prezentaci ve formátu Strict Office Open XML.
    presentation.Save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
}

Ukládání prezentací v Office Open XML formátu v režimu Zip64

Soubor Office Open XML je ZIP archiv, který omezuje nekomprimovanou velikost jakéhokoli souboru, komprimovanou velikost jakéhokoli souboru i celkovou velikost archivu na 4 GB (2^32 bytů) a také omezuje počet souborů v archivu na 65 535 (2^16‑1). Rozšíření formátu ZIP64 tato omezení zvyšují na 2^64.

Vlastnost IPptxOptions.Zip64Mode vám umožňuje zvolit, kdy použít rozšíření ZIP64 při ukládání souboru Office Open XML.

Tato vlastnost poskytuje následující režimy:

  • IfNecessary používá rozšíření ZIP64 pouze pokud prezentace překročí výše uvedená omezení. Toto je výchozí režim.
  • Never nikdy nepoužívá rozšíření ZIP64.
  • Always vždy používá rozšíření ZIP64.

Následující kód ukazuje, jak uložit prezentaci jako soubor PPTX s povolenými rozšířeními ZIP64:

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("OutputZip64.pptx", SaveFormat.Pptx, new PptxOptions()
    {
        Zip64Mode = Zip64Mode.Always
    });
}

Ukládání prezentací v Office Open XML formátu s úrovněmi komprese

Při práci s velkými prezentacemi můžete upravit úroveň komprese, abyste vybalancovali velikost souboru a dobu zpracování. V závislosti na vašich požadavcích můžete preferovat rychlejší zpracování nebo menší výstupní soubory.

Aspose.Slides poskytuje vlastnost IPptxOptions.CompressionLevel, která vám umožňuje určit úroveň komprese používanou při ukládání prezentace v Office Open XML formátu.

Dostupné úrovně komprese jsou:

  • None: Žádná komprese. Soubory jsou uloženy v původní podobě.
  • Level1: Nejrychlejší komprese s nejnižším poměrem komprese.
  • Level2: Rychlejší komprese s mírně lepším poměrem než Level1.
  • Level3: Poskytuje lepší kompresi než Level2 s mírným dopadem na dobu zpracování.
  • Level4: Poskytuje lepší kompresi než Level3.
  • Level5: Zlepšená komprese oproti Level4 s dalším časem zpracování.
  • Level6: Standardní komprese, která nabízí dobrý poměr rychlosti zpracování a velikosti souboru. Toto je výchozí úroveň komprese.
  • Level7: Lepší komprese než Level6 s pomalejším zpracováním.
  • Level8: Lepší komprese než Level7.
  • Level9: Maximální komprese. Produkuje nejmenší velikost souboru za cenu nejdelší doby zpracování.

Následující příklad ukazuje, jak uložit prezentaci jako soubor PPTX bez komprese:

using (Presentation pres = new Presentation("Sample.pptx"))
{
    pres.Save("Sample-out.pptx", SaveFormat.Pptx, new PptxOptions
    {
        CompressionLevel = CompressionLevel.None
    });
}

Tento příklad ukazuje, jak uložit prezentaci jako soubor PPTX s maximální kompresí:

using (Presentation pres = new Presentation("Sample.pptx"))
{
    pres.Save("Sample-level9.pptx", SaveFormat.Pptx, new PptxOptions
    {
        CompressionLevel = CompressionLevel.Level9
    });
}

Ukládání prezentací bez aktualizace miniatury

Vlastnost PptxOptions.RefreshThumbnail řídí generování miniatury při ukládání prezentace do PPTX:

  • Pokud je nastavena na true, miniatura se při uložení aktualizuje. Toto je výchozí nastavení.
  • Pokud je nastavena na false, zachová se aktuální miniatura. Pokud prezentace nemá miniaturu, žádná se nevygeneruje.

V níže uvedeném kódu je prezentace uložena do PPTX bez aktualizace miniatury.

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("Output.pptx", SaveFormat.Pptx, new PptxOptions()
    {
        RefreshThumbnail = false
    });
}

Ukládání aktualizací postupu v procentech

Rozhraní IProgressCallback se používá přes vlastnost ProgressCallback vystavenou rozhraním ISaveOptions a abstraktní třídou SaveOptions. Přiřaďte implementaci IProgressCallback k ProgressCallback, abyste získali aktualizace postupu ukládání v procentech.

Níže uvedené úryvky kódu ukazují, jak použít IProgressCallback.

ISaveOptions saveOptions = new PdfOptions();
saveOptions.ProgressCallback = new ExportProgressHandler();

using (Presentation presentation = new Presentation("Sample.pptx"))
{
    presentation.Save("Output.pdf", SaveFormat.Pdf, saveOptions);
}
class ExportProgressHandler : IProgressCallback
{
    public void Reporting(double progressValue)
    {
        // Zde použijte hodnotu procenta postupu.
        int progress = Convert.ToInt32(progressValue);

        Console.WriteLine(progress + "% of the file has been converted.");
    }
}

Č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 volání vytvoří kompletní cílový soubor; inkrementální „rychlé ukládání“ není podporováno.

Je bezpečné ukládat stejnou instanci Presentation z více vláken?

Ne. Instance Presentation není thread‑safe (/slides/cs/net/multithreading/); 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) se automaticky nekopírují – zajistěte, aby odkazy zůstaly přístupné.

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.