Ukládání prezentací v JavaScriptu

Přehled

Open Presentations in JavaScript 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 uložit, když skončíte. S Aspose.Slides pro Node.js můžete uložit do souboru nebo streamu. Tento článek popisuje různé způsoby uložení prezentace.

Ukládání prezentací do souborů

Uložte prezentaci do souboru zavoláním metody save třídy Presentation. Předáte názvu souboru a formátu 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.
let presentation = new aspose.slides.Presentation();
try {
    // Proveďte zde nějakou práci...

    // Uložte prezentaci do souboru.
    presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    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 zapsat 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.
let presentation = new aspose.slides.Presentation();
try {
    let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx");
    try {
        // Uložte prezentaci do streamu.
        presentation.save(fileStream, aspose.slides.SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

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, pomocí třídy ViewProperties. Použijte metodu setLastView s hodnotou z výčtu ViewType.

let presentation = new aspose.slides.Presentation();
try {
    presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    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 nastavte její vlastnost conformance při ukládání. Pokud nastavíte Conformance.Iso29500_2008_Strict, výstupní soubor je 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.

let options = new aspose.slides.PptxOptions();
options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict);

// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
let presentation = new aspose.slides.Presentation();
try {
    // Uložte prezentaci ve formátu Strict Office Open XML.
    presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.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 jakéhokoli souboru, komprimovanou velikost jakéhokoli souboru i celkovou velikost archivu na 4 GB (2^32 bytů) a také omezuje archiv na 65 535 (2^16‑1) souborů. Rozšíření formátu ZIP64 tato omezení zvyšují na 2^64.

Metoda PptxOptions.setZip64Mode vám umožňuje zvolit, kdy použít rozšíření formátu 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:

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

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

let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always);

let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
    presentation.save("OutputZip64.pptx", aspose.slides.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 je během uložení obnovena. Toto je výchozí hodnota.
  • Pokud je nastavena na false, aktuální miniatura je zachována. Pokud prezentace nemá miniaturu, žádná není vytvořena.

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

let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setRefreshThumbnail(false);

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

Ukládání aktualizací postupu v procentech

Zpráva o postupu ukládání je konfigurována pomocí metody setProgressCallback na třídě SaveOptions a jejích podtřídách. Poskytněte Java proxy, která implementuje rozhraní IProgressCallback; během exportu callback přijímá periodické aktualizace v procentech.

Následující úryvky kódu ukazují, jak použít IProgressCallback.

const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", {
    reporting: function(progressValue) {
        // Použijte zde hodnotu procenta postupu.
        const progress = Math.floor(progressValue);
        console.log(`${progress}% of the file has been converted.`);
    }
});

let saveOptions = new aspose.slides.PdfOptions();
saveOptions.setProgressCallback(ExportProgressHandler);

let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
    presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions);
} finally {
    presentation.dispose();
}

FAQ

Je podporováno „rychlé uložení“ (inkrementální ukládání), takže se zapisují jen změny?

Ne. Ukládání vždy vytvoří celý cílový soubor; inkrementální „rychlé uložení“ není podporováno.

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

Ne. Instance Presentation není thread‑safe; ukládejte ji z jednoho vlákna.

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

Hyperlinky jsou zachovány. Externě propojené 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 budou při ukládání zapsány do souboru.