Ukládání prezentací v Java

Přehled

Open Presentations in Java 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 Java můžete ukládat do souboru nebo proudu. 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. Metodě předáte název souboru a formát uložení. Následující příklad ukazuje, jak uložit prezentaci pomocí Aspose.Slides.

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation();
try {
    // Proveďte zde nějakou práci...

    // Uložte prezentaci do souboru.
    presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

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 různých 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.
Presentation presentation = new Presentation();
try {
    OutputStream fileStream = new FileOutputStream("Output.pptx");
    try {
        // Uložte prezentaci do proudu.
        presentation.save(fileStream, SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

Ukládání prezentací s předdefinovaným typem zobrazení

Aspose.Slides umožňuje nastavit počáteční zobrazení, které PowerPoint použije při otevření vygenerované prezentace, pomocí třídy ViewProperties. Použijte metodu setLastView s hodnotou z výčtu ViewType.

Presentation presentation = new Presentation();
try {
    presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Ukládání prezentací ve formátu Strict Office Open XML

Aspose.Slides 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.

PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);

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

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

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

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

Tuto metodu můžete použít s následujícími 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žije rozšíření ZIP64.
  • Always vždy použije rozšíření ZIP64.

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

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setZip64Mode(Zip64Mode.Always);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("OutputZip64.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    presentation.dispose();
}

Ukládání prezentací bez obnovení miniatury

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

  • Pokud je nastavena na true, miniatura se při ukládání obnoví. Jedná se o výchozí nastavení.
  • Pokud je nastavena na false, aktuální miniatura se zachová. Pokud prezentace nemá miniaturu, žádná se nevygeneruje.

V níže uvedeném kódu se prezentace uloží do PPTX bez obnovení miniatury.

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setRefreshThumbnail(false);

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Output.pptx", SaveFormat.Pptx, pptxOptions);
}
finally {
    presentation.dispose();
}

Ukládání průběhu v procentech

Rozhraní IProgressCallback se používá prostřednictvím metody setProgressCallback vystavené rozhraním ISaveOptions a abstraktní třídou SaveOptions. Implementaci IProgressCallback přiřaďte pomocí setProgressCallback, abyste získali aktualizace průběhu ukládání v procentech.

Níže jsou ukázky kódu, jak použít IProgressCallback.

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

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Output.pdf", SaveFormat.Pdf, saveOptions);
} finally {
    presentation.dispose();
}
class ExportProgressHandler implements IProgressCallback {
    public void reporting(double progressValue) {
        // Použijte zde hodnotu postupu v procentech.
        int progress = (int) progressValue;

        System.out.println(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í vždy vytvoří úplný cílový soubor; inkrementální „rychlé ukládání“ není podporováno.

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

Ne. Instance Presentation není bezpečná pro více vláken; ukládejte ji z jednoho vlákna.

Co se stane s hypertextovými odkazy a externě odkazovanými soubory při ukládání?

Hypertextové odkazy jsou zachovány. Externě odkazované soubory (např. videa pomocí relativních cest) se automaticky nekopírují — ujistěte se, že odkazy na cesty zůstávají přístupné.

Mohu nastavit/uložit metadata dokumentu (Autor, Název, Společnost, Datum)?

Ano. Standardní vlastnosti dokumentu jsou podporovány a při ukládání se zapíší do souboru.