Spara presentationer i JavaScript
Översikt
Efter att du har skapat en presentation eller öppna en befintlig, använd metoden Presentation.save för att skriva resultatet. Aspose.Slides för Node.js via Java kan spara en presentation till en fil eller ström i PowerPoint, OpenDocument, PDF och andra format. Följande avsnitt täcker de standardlagringsoperationerna och de alternativ som finns för PPTX-utdata.
Spara presentationer till filer
För att spara en presentation till en fil, skicka output‑sökvägen och ett SaveFormat värde till metoden Presentation.save. Formatvärdet bestämmer vilken typ av fil som Aspose.Slides skapar.
Följande exempel skapar en presentation och sparar den som en PPTX‑fil:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation();
try {
// Lägg till eller ändra presentationsinnehåll här.
presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Spara presentationer i deras ursprungliga format
För exempel på fil‑ och strömdetektion, beteendet för nyskapade presentationer och skillnaden mellan källa‑ och utdataformat, se Bestäm det ursprungliga presentationsformatet.
I ett batch‑bearbetningsprogram kan indataformatet vara okänt i förväg. Efter att ha laddat en fil, läs dess ursprungliga format från metoden Presentation.getSourceFormat. Skicka det resulterande SourceFormat värdet till SlideUtil.toSaveFormat för att få motsvarande SaveFormat värde, och använd sedan Presentation.save för att skriva den modifierade presentationen.
Följande kompletta exempel bearbetar varje fil i en inmatningskatalog, uppdaterar dess titel och sparar den till en utdatamapp i det format den laddades från:
const aspose = { slides: require("aspose.slides.via.java") };
const fs = require("fs");
const path = require("path");
const inputDirectory = "Input";
const outputDirectory = "Output";
if (!fs.existsSync(inputDirectory)) {
console.error("The input directory does not exist.");
} else {
fs.mkdirSync(outputDirectory, { recursive: true });
const inputFiles = fs.readdirSync(inputDirectory, { withFileTypes: true })
.filter((entry) => entry.isFile());
for (const inputFile of inputFiles) {
const inputPath = path.join(inputDirectory, inputFile.name);
try {
const presentation = new aspose.slides.Presentation(inputPath);
try {
const saveFormat = aspose.slides.SlideUtil.toSaveFormat(presentation.getSourceFormat());
presentation.getDocumentProperties().setTitle("Processed by the batch application");
const outputPath = path.join(outputDirectory, inputFile.name);
presentation.save(outputPath, saveFormat);
} finally {
presentation.dispose();
}
} catch (error) {
console.error(`Cannot process '${inputPath}': ${error.message}`);
}
}
}
SlideUtil.toSaveFormat mappar PPT, PPTX, ODP, PPTM, PPSX, PPSM, POTX, POTM, PPS, POT, OTP, FODP och PowerPoint XML till deras motsvarande presentationssparformat. Det mappar endast presentationskällformat; det är inte avsett att välja exportformat såsom PDF, HTML, TIFF eller bilder. Att skicka ett ej stödt eller ogiltigt SourceFormat värde resulterar i ett fel.
Äldre PPT-, PPS- och POT-filer använder samma binära behållare. När en sådan presentation laddas från en ström utan filändelse kan en PPS- eller POT-fil därför identifieras som PPT. Om bevarande av dessa äldre subtyper krävs, behåll det ursprungliga filnamnet eller formatmetadata separat och använd dem när du väljer utdatafilnamn och format.
Spara presentationer till strömmar
För att skriva en presentation utan att förlita dig på en slutgiltig filsökväg, skicka en skrivbar ström och ett SaveFormat värde till metoden Presentation.save. Detta tillvägagångssätt är användbart när utdata måste returneras från en webbtjänst, lagras i en databas eller bearbetas i minnet.
Följande exempel sparar en ny presentation till en filström:
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const outputStream = java.newInstanceSync("java.io.FileOutputStream", "output.pptx");
try {
presentation.save(outputStream, aspose.slides.SaveFormat.Pptx);
} finally {
outputStream.close();
}
} finally {
presentation.dispose();
}
Spara presentationer med en fördefinierad vytyp
Du kan ange den vy som PowerPoint initialt öppnar en sparad presentation i. Använd metoden ViewProperties.setLastView med ett ViewType värde innan du sparar.
Följande exempel konfigurerar Slide Master‑vyn som den initiala vyn:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation();
try {
presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView);
presentation.save("slide-master-view.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Spara presentationer i det strikt Office Open XML‑formatet
För att skapa en PPTX‑fil som följer den strikta profilen av Office Open XML, skapa en PptxOptions instans och använd dess setConformance metod med Conformance.Iso29500_2008_Strict. Skicka sedan alternativen till metoden Presentation.save.
const aspose = { slides: require("aspose.slides.via.java") };
const options = new aspose.slides.PptxOptions();
options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict);
const presentation = new aspose.slides.Presentation();
try {
presentation.save("strict-office-open-xml.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
Spara presentationer i Office Open XML‑format i Zip64‑läge
Ett standard‑ZIP‑arkiv begränsar den komprimerade och okomprimerade storleken för varje post, den totala arkivstorleken och antalet poster. Eftersom en PPTX‑fil är ett ZIP‑arkiv kan en mycket stor presentation överskrida dessa gränser. ZIP64‑tillägg höjer de tillämpliga storleks‑ och postgränserna.
Använd metoden PptxOptions.setZip64Mode för att kontrollera om Aspose.Slides skriver ZIP64‑tillägg:
- IfNecessary använder ZIP64 endast när presentationen överskrider standard‑ZIP‑gränserna. Detta är standardläget.
- Never inaktiverar ZIP64‑tillägg.
- Always skriver alltid ZIP64‑tillägg.
Följande exempel aktiverar alltid ZIP64‑tillägg för presentationsutdata:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation("input.pptx");
try {
const options = new aspose.slides.PptxOptions();
options.setZip64Mode(aspose.slides.Zip64Mode.Always);
presentation.save("output-zip64.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
Warning
Om Zip64Mode.Never används och presentationen inte får plats inom standard‑ZIP‑gränserna, kastar sparoperationen ett PptxException.Spara presentationer i Office Open XML‑format med komprimeringsnivåer
För PPTX‑utdata kan du balansera sparhastighet mot filstorlek genom att använda metoden PptxOptions.setCompressionLevel. Klassen CompressionLevel tillhandahåller följande värden:
- None lagrar data utan kompression.
- Level1 ger den snabbaste komprimeringen och den största komprimerade utdata.
- Level2 till Level5 föredrar successivt mindre utdata framför sparhastighet.
- Level6 balanserar sparhastighet och filstorlek. Detta är standardnivån.
- Level7 och Level8 föredrar ytterligare mindre utdata framför sparhastighet.
- Level9 ger den starkaste komprimeringen och kräver mest bearbetningstid.
Följande exempel sparar en presentation utan kompression:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation("input.pptx");
try {
const options = new aspose.slides.PptxOptions();
options.setCompressionLevel(aspose.slides.CompressionLevel.None);
presentation.save("output-no-compression.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
Följande exempel använder den maximala komprimeringsnivån:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation("input.pptx");
try {
const options = new aspose.slides.PptxOptions();
options.setCompressionLevel(aspose.slides.CompressionLevel.Level9);
presentation.save("output-maximum-compression.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
Spara presentationer utan att uppdatera miniatyren
När en presentation sparas som PPTX styr metoden PptxOptions.setRefreshThumbnail dess dokumentminiatyr:
trueregenererar miniatyren under sparoperationen. Detta är standardvärdet.falsebehåller befintlig miniatyr. Om presentationen saknar miniatyr genererar inte Aspose.Slides någon.
Följande exempel sparar en presentation utan att uppdatera dess miniatyr:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation("input.pptx");
try {
const options = new aspose.slides.PptxOptions();
options.setRefreshThumbnail(false);
presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
Note
Att inaktivera miniatyruppdatering kan minska den tid som krävs för att spara en PPTX‑fil.Spara förloppsuppdateringar i procent
För att övervaka en sparoperation, implementera gränssnittet IProgressCallback med en Java‑proxy och skicka implementationen till metoden SaveOptions.setProgressCallback. Aspose.Slides kallar sedan metoden IProgressCallback.reporting med förloppsvärden under exporten.
Följande exempel rapporterar förloppet för en PDF‑export till konsolen:
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const exportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", {
reporting: function(progressValue) {
const progress = Math.floor(progressValue);
console.log(`${progress}% of the file has been converted.`);
}
});
const options = new aspose.slides.PdfOptions();
options.setProgressCallback(exportProgressHandler);
const presentation = new aspose.slides.Presentation("input.pptx");
try {
presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, options);
} finally {
presentation.dispose();
}
Note
Aspose erbjuder en gratis PowerPoint Splitter byggd med Aspose.Slides‑API. Den sparar valda bilder från en presentation som separata PPT‑ eller PPTX‑filer.Vanliga frågor
Stöder Aspose.Slides inkrementell eller “snabb spara”?
Nej. Varje sparoperation skriver en komplett utdatafil snarare än att bara uppdatera de ändrade delarna.
Kan flera trådar spara samma Presentation‑instans?
Nej. En Presentation instans är inte trådsäker. Åtkomst och sparning av varje instans får endast ske från en tråd åt gången.
Vad händer med hyperlänkar och externt länkade filer när jag sparar en presentation?
Hyperlänkar förblir i presentationen. Aspose.Slides kopierar inte externt länkade filer, så den sparade presentationen måste fortfarande kunna nå deras platser.
Kan jag spara dokumentmetadata såsom författare, titel, företag och skapelsedatum?
Ja. Ställ in lämpliga dokumentegenskaper innan du sparar, så skriver Aspose.Slides dem till utdatafilen.