Salva presentazioni in JavaScript

Panoramica

Apri presentazioni in JavaScript descrive come utilizzare la classe Presentation per aprire una presentazione. Questo articolo spiega come creare e salvare presentazioni. La classe Presentation contiene i contenuti di una presentazione. Che tu stia creando una presentazione da zero o modificando una esistente, dovrai salvarla una volta terminato. Con Aspose.Slides per Node.js, puoi salvare in un file o in uno stream. Questo articolo illustra i diversi modi per salvare una presentazione.

Salvare presentazioni su file

Salva una presentazione su file chiamando il metodo save della classe Presentation. Passa il nome del file e il formato di salvataggio al metodo. L’esempio seguente mostra come salvare una presentazione con Aspose.Slides.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

// Istanzia la classe Presentation che rappresenta un file di presentazione.
let presentation = new aspose.slides.Presentation();
try {
    // Esegui qualche lavoro qui...

    // Salva la presentazione su un file.
    presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Salvare presentazioni su stream

Puoi salvare una presentazione su uno stream passando uno stream di output al metodo save della classe Presentation. Una presentazione può essere scritta su molti tipi di stream. Nell’esempio sottostante, creiamo una nuova presentazione e la salviamo su un file stream.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

// Istanzia la classe Presentation che rappresenta un file di presentazione.
let presentation = new aspose.slides.Presentation();
try {
    let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx");
    try {
        // Salva la presentazione sullo stream.
        presentation.save(fileStream, aspose.slides.SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

Salvare presentazioni con un tipo di visualizzazione predefinito

Aspose.Slides consente di impostare la visualizzazione iniziale che PowerPoint utilizza quando la presentazione generata viene aperta tramite la classe ViewProperties. Usa il metodo setLastView con un valore dell’enumerazione ViewType.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

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();
}

Salvare presentazioni nel formato Strict Office Open XML

Aspose.Slides consente di salvare una presentazione nel formato Strict Office Open XML. Usa la classe PptxOptions e imposta la sua proprietà conformance durante il salvataggio. Se imposti Conformance.Iso29500_2008_Strict, il file di output viene salvato nel formato Strict Office Open XML.

L’esempio seguente crea una presentazione e la salva nel formato Strict Office Open XML.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

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

// Istanzia la classe Presentation che rappresenta un file di presentazione.
let presentation = new aspose.slides.Presentation();
try {
    // Salva la presentazione nel formato Strict Office Open XML.
    presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
    presentation.dispose();
}

Salvare presentazioni in formato Office Open XML in modalità Zip64

Un file Office Open XML è un archivio ZIP che impone limiti di 4 GB (2^32 byte) sulla dimensione non compressa di qualsiasi file, sulla dimensione compressa di qualsiasi file e sulla dimensione totale dell’archivio, oltre a limitare l’archivio a 65 535 (2^16‑1) file. Le estensioni del formato ZIP64 aumentano questi limiti a 2^64.

Il metodo PptxOptions.setZip64Mode consente di scegliere quando utilizzare le estensioni del formato ZIP64 durante il salvataggio di un file Office Open XML.

Questo metodo può essere usato con le seguenti modalità:

  • IfNecessary utilizza le estensioni ZIP64 solo se la presentazione supera le limitazioni sopra indicate. È la modalità predefinita.
  • Never non utilizza mai le estensioni ZIP64.
  • Always utilizza sempre le estensioni ZIP64.

Il codice seguente dimostra come salvare una presentazione come file PPTX con le estensioni ZIP64 abilitate:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

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();
}

Salvare presentazioni in formato Office Open XML con livelli di compressione

Quando lavori con presentazioni di grandi dimensioni, puoi regolare il livello di compressione per bilanciare la dimensione del file e il tempo di elaborazione. A seconda delle tue esigenze, potresti preferire una elaborazione più rapida o file di output più piccoli.

Aspose.Slides fornisce il metodo PptxOptions.setCompressionLevel, che consente di specificare il livello di compressione da utilizzare quando si salva una presentazione in formato Office Open XML.

I livelli di compressione disponibili sono:

  • None: Nessuna compressione. I file vengono memorizzati così come sono.
  • Level1: Compressione più veloce con il rapporto di compressione più basso.
  • Level2: Compressione più veloce con un rapporto leggermente migliore rispetto a Level1.
  • Level3: Fornisce una compressione migliore rispetto a Level2 con un impatto moderato sul tempo di elaborazione.
  • Level4: Fornisce una compressione migliore rispetto a Level3.
  • Level5: Migliora la compressione rispetto a Level4 con ulteriore tempo di elaborazione.
  • Level6: Compressione standard che offre un buon equilibrio tra velocità di elaborazione e dimensione del file. È il livello di compressione predefinito.
  • Level7: Fornisce una compressione migliore rispetto a Level6 ma con una elaborazione più lenta.
  • Level8: Fornisce una compressione migliore rispetto a Level7.
  • Level9: Compressione massima. Produce il file più piccolo a costo del tempo di elaborazione più lungo.

L’esempio seguente dimostra come salvare una presentazione come file PPTX senza compressione:

const aspose = { slides: require("aspose.slides.via.java") };

const pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setCompressionLevel(aspose.slides.CompressionLevel.None);

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

Questo esempio mostra come salvare una presentazione come file PPTX con massima compressione:

const aspose = { slides: require("aspose.slides.via.java") };

const pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setCompressionLevel(aspose.slides.CompressionLevel.Level9);

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

Salvare presentazioni senza aggiornare la miniatura

Il metodo PptxOptions.setRefreshThumbnail controlla la generazione della miniatura quando si salva una presentazione in PPTX:

  • Se impostato su true, la miniatura viene aggiornata durante il salvataggio. È il valore predefinito.
  • Se impostato su false, la miniatura corrente viene preservata. Se la presentazione non ha una miniatura, non ne viene generata alcuna.

Nel codice sottostante, la presentazione viene salvata in PPTX senza aggiornare la miniatura.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

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();
}

Salvataggio del progresso in percentuale

Il reporting del progresso di salvataggio è configurato tramite il metodo setProgressCallback su SaveOptions e le sue sottoclassi. Fornisci un proxy Java che implementi l’interfaccia IProgressCallback; durante l’esportazione, il callback riceve aggiornamenti percentuali periodici.

Gli snippet di codice seguenti mostrano come utilizzare IProgressCallback.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", {
    reporting: function(progressValue) {
        // Utilizza qui il valore percentuale di avanzamento.
        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

È supportato il “salvataggio veloce” (salvataggio incrementale) in modo che vengano scritte solo le modifiche?

No. Il salvataggio crea l’intero file di destinazione ogni volta; il “salvataggio veloce” incrementale non è supportato.

È thread‑safe salvare la stessa istanza di Presentation da più thread?

No. Un’istanza di Presentation non è thread‑safe; salvala da un singolo thread.

** Cosa succede ai collegamenti ipertestuali e ai file collegati esternamente durante il salvataggio?**

Hyperlinks vengono preservati. I file collegati esternamente (ad esempio video tramite percorsi relativi) non vengono copiati automaticamente: assicurati che i percorsi di riferimento rimangano accessibili.

Posso impostare/salvare i metadati del documento (Autore, Titolo, Azienda, Data)?

Sì. Le proprietà del documento standard sono supportate e verranno scritte nel file al momento del salvataggio.