Save Presentations in JavaScript
Overview
Open Presentations in JavaScript described how to use the Presentation class to open a presentation. This article explains how to create and save presentations. The Presentation class contains a presentation’s contents. Whether you’re creating a presentation from scratch or modifying an existing one, you’ll want to save it when you’re finished. With Aspose.Slides for Node.js, you can save to a file or stream. This article explains the different ways to save a presentation.
Save Presentations to Files
Save a presentation to a file by calling the Presentation class’s save
method. Pass the file name and save format to the method. The following example show how to save a presentation with Aspose.Slides.
// Instantiate the Presentation class that represents a presentation file.
let presentation = new aspose.slides.Presentation();
try {
// Do some work here...
// Save the presentation to a file.
presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Save Presentations to Streams
You can save a presentation to a stream by passing an output stream to the Presentation class’s save
method. A presentation can be written to many stream types. In the example below, we create a new presentation and save it to a file stream.
// Instantiate the Presentation class that represents a presentation file.
let presentation = new aspose.slides.Presentation();
try {
let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx");
try {
// Save the presentation to the stream.
presentation.save(fileStream, aspose.slides.SaveFormat.Pptx);
} finally {
fileStream.close();
}
} finally {
presentation.dispose();
}
Save Presentations with a Predefined View Type
Aspose.Slides lets you set the initial view that PowerPoint uses when the generated presentation opens through the ViewProperties class. Use the setLastView method with a value from the ViewType enumeration.
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();
}
Save Presentations in the Strict Office Open XML Format
Aspose.Slides lets you save a presentation in the Strict Office Open XML format. Use the PptxOptions class and set its conformance property when saving. If you set Conformance.Iso29500_2008_Strict, the output file is saved in the Strict Office Open XML format.
The example below creates a presentation and saves it in the Strict Office Open XML format.
let options = new aspose.slides.PptxOptions();
options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict);
// Instantiate the Presentation class that represents a presentation file.
let presentation = new aspose.slides.Presentation();
try {
// Save the presentation in the Strict Office Open XML format.
presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
Save Presentations in Office Open XML Format in Zip64 Mode
An Office Open XML file is a ZIP archive that imposes 4 GB (2^32 bytes) limits on the uncompressed size of any file, the compressed size of any file, and the total size of the archive, and it also limits the archive to 65,535 (2^16-1) files. ZIP64 format extensions raise these limits to 2^64.
The PptxOptions.setZip64Mode method lets you choose when to use ZIP64 format extensions when saving an Office Open XML file.
This method can be used with the following modes:
- IfNecessary uses ZIP64 format extensions only if the presentation exceeds the limitations above. This is the default mode.
- Never never uses ZIP64 format extensions.
- Always always uses ZIP64 format extensions.
The following code demonstrates how to save a presentation as PPTX with ZIP64 format extensions enabled:
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();
}
NOTE
When you save with Zip64Mode.Never, a PptxException is thrown if the presentation cannot be saved in ZIP32 format.Save Presentations without Refreshing the Thumbnail
The PptxOptions.setRefreshThumbnail method controls thumbnail generation when saving a presentation to PPTX:
- If set to
true
, the thumbnail is refreshed during save. This is the default. - If set to
false
, the current thumbnail is preserved. If the presentation has no thumbnail, none is generated.
In the code below, the presentation is saved to PPTX without refreshing its thumbnail.
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();
}
Info
This option helps reduce the time required to save a presentation in PPTX format.Save Progress Updates in Percentage
Save-progress reporting is configured via the setProgressCallback method on SaveOptions and its subclasses. Provide a Java proxy that implements the IProgressCallback interface; during export, the callback receives periodic percentage updates.
The following code snippets show how to use IProgressCallback
.
const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", {
reporting: function(progressValue) {
// Use the progress percentage value here.
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();
}