Presentaties opslaan in .NET
Overzicht
Open Presentaties in C# beschrijft hoe je de Presentation klasse kunt gebruiken om een presentatie te openen. Dit artikel legt uit hoe je presentaties kunt maken en opslaan. De Presentation klasse bevat de inhoud van een presentatie. Of je nu een presentatie vanaf nul maakt of een bestaande bewerkt, je wilt deze opslaan zodra je klaar bent. Met Aspose.Slides voor .NET kun je opslaan naar een bestand of stream. Dit artikel legt de verschillende manieren uit om een presentatie op te slaan.
Presentaties opslaan naar bestanden
Sla een presentatie op naar een bestand door de Save‑methode van de Presentation klasse aan te roepen. Geef de bestandsnaam en het opslagformaat door aan de methode. Het volgende voorbeeld laat zien hoe je een presentatie opslaat met Aspose.Slides.
using Aspose.Slides;
using Aspose.Slides.Export;
// Instantieer de Presentation-klasse die een presentatiebestand vertegenwoordigt.
using (Presentation presentation = new Presentation())
{
// Doe hier wat werk...
// Sla de presentatie op naar een bestand.
presentation.Save("Output.pptx", SaveFormat.Pptx);
}
Presentaties opslaan naar streams
Je kunt een presentatie opslaan naar een stream door een output‑stream door te geven aan de Save‑methode van de Presentation klasse. Een presentatie kan naar veel verschillende stream‑typen worden geschreven. In het voorbeeld hieronder maken we een nieuwe presentatie en slaan we deze op naar een bestands‑stream.
using Aspose.Slides;
using Aspose.Slides.Export;
// Instantieer de Presentation-klasse die een presentatiebestand vertegenwoordigt.
using (Presentation presentation = new Presentation())
{
using (FileStream fileStream = new FileStream("Output.pptx", FileMode.Create))
{
// Sla de presentatie op naar de stream.
presentation.Save(fileStream, SaveFormat.Pptx);
}
}
Presentaties opslaan met een vooraf gedefinieerde weergavetype
Aspose.Slides stelt je in staat het oorspronkelijke weergave‑type in te stellen dat PowerPoint gebruikt wanneer de gegenereerde presentatie wordt geopend via de ViewProperties klasse. Stel de eigenschap LastView in op een waarde uit de enumeratie ViewType.
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation presentation = new Presentation())
{
presentation.ViewProperties.LastView = ViewType.SlideMasterView;
presentation.Save("SlideMasterView.pptx", SaveFormat.Pptx);
}
Presentaties opslaan in het Strict Office Open XML‑formaat
Aspose.Slides laat je een presentatie opslaan in het Strict Office Open XML‑formaat. Gebruik de PptxOptions klasse en stel bij het opslaan de eigenschap Conformance in. Als je Conformance.Iso29500_2008_Strict instelt, wordt het uitvoerbestand opgeslagen in het Strict Office Open XML‑formaat.
Het voorbeeld hieronder creëert een presentatie en slaat deze op in het Strict Office Open XML‑formaat.
using Aspose.Slides;
using Aspose.Slides.Export;
PptxOptions options = new PptxOptions()
{
Conformance = Conformance.Iso29500_2008_Strict
};
// Instantieer de Presentation-klasse die een presentatiebestand vertegenwoordigt.
using (Presentation presentation = new Presentation())
{
// Sla de presentatie op in het Strict Office Open XML-formaat.
presentation.Save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
}
Presentaties opslaan in Office Open XML‑formaat in Zip64‑modus
Een Office Open XML‑bestand is een ZIP‑archief dat limieten van 4 GB (2^32 bytes) oplegt aan de ongecomprimeerde grootte van elk bestand, de gecomprimeerde grootte van elk bestand en de totale grootte van het archief, en tevens een limiet van 65 535 (2^16‑1) bestanden. ZIP64‑formatextensies verhogen deze limieten naar 2^64.
De eigenschap IPptxOptions.Zip64Mode laat je kiezen wanneer ZIP64‑formatextensies worden gebruikt bij het opslaan van een Office Open XML‑bestand.
Deze eigenschap biedt de volgende modi:
IfNecessarygebruikt ZIP64‑formatextensies alleen als de presentatie de bovenstaande beperkingen overschrijdt. Dit is de standaardmodus.Nevergebruikt nooit ZIP64‑formatextensies.Alwaysgebruikt altijd ZIP64‑formatextensies.
De volgende code laat zien hoe je een presentatie opslaat als een PPTX‑bestand met ZIP64‑formatextensies ingeschakeld:
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("OutputZip64.pptx", SaveFormat.Pptx, new PptxOptions()
{
Zip64Mode = Zip64Mode.Always
});
}
NOTE
Wanneer je opslaat metZip64Mode.Never, wordt een PptxException gegooid als de presentatie niet in ZIP32‑formaat kan worden opgeslagen.
Presentaties opslaan in Office Open XML‑formaat met compressieniveaus
Wanneer je met grote presentaties werkt, kun je het compressieniveau aanpassen om een balans te vinden tussen bestandsgrootte en verwerkingstijd. Afhankelijk van je eisen kun je kiezen voor snellere verwerking of kleinere uitvoerbestanden.
Aspose.Slides biedt de eigenschap IPptxOptions.CompressionLevel, waarmee je het compressieniveau kunt opgeven dat wordt gebruikt bij het opslaan van een presentatie in Office Open XML‑formaat.
De volgende compressieniveaus zijn beschikbaar:
- None: Er wordt geen compressie toegepast. Bestanden worden onveranderd opgeslagen.
- Level1: De snelste compressie met de laagste compressieverhouding.
- Level2: Snellere compressie met een iets betere compressieverhouding dan Level1.
- Level3: Biedt betere compressie dan Level2 met een matige impact op de verwerkingstijd.
- Level4: Biedt betere compressie dan Level3.
- Level5: Biedt verbeterde compressie ten opzichte van Level4 met extra verwerkingstijd.
- Level6: Standaardcompressie die een goede balans biedt tussen verwerkingssnelheid en bestandsgrootte. Dit is het standaardcompressieniveau.
- Level7: Biedt betere compressie dan Level6 met tragere verwerking.
- Level8: Biedt betere compressie dan Level7.
- Level9: Maximale compressie. Produceert de kleinste bestandsgrootte ten koste van de langste verwerkingstijd.
Het volgende voorbeeld laat zien hoe je een presentatie opslaat als een PPTX‑bestand zonder compressie:
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation pres = new Presentation("Sample.pptx"))
{
pres.Save("Sample-out.pptx", SaveFormat.Pptx, new PptxOptions
{
CompressionLevel = CompressionLevel.None
});
}
Dit voorbeeld toont hoe je een presentatie opslaat als een PPTX‑bestand met maximale compressie:
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation pres = new Presentation("Sample.pptx"))
{
pres.Save("Sample-level9.pptx", SaveFormat.Pptx, new PptxOptions
{
CompressionLevel = CompressionLevel.Level9
});
}
Presentaties opslaan zonder de miniatuur te vernieuwen
De eigenschap PptxOptions.RefreshThumbnail regelt het genereren van een miniatuur bij het opslaan van een presentatie naar PPTX:
- Als deze op
truestaat, wordt de miniatuur tijdens het opslaan ververst. Dit is de standaardwaarde. - Als deze op
falsestaat, wordt de huidige miniatuur behouden. Als de presentatie geen miniatuur heeft, wordt er geen gegenereerd.
In de code hieronder wordt de presentatie opgeslagen naar PPTX zonder de miniatuur te vernieuwen.
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("Output.pptx", SaveFormat.Pptx, new PptxOptions()
{
RefreshThumbnail = false
});
}
Info
Deze optie helpt de tijd die nodig is om een presentatie in PPTX‑formaat op te slaan te verkorten.Opslaan voortgangsupdates in percentage
De interface IProgressCallback wordt gebruikt via de eigenschap ProgressCallback die wordt blootgesteld door de interface ISaveOptions en de abstracte klasse SaveOptions. Wijs een implementatie van IProgressCallback toe aan ProgressCallback om voortgangsupdates van het opslaan als percentage te ontvangen.
De volgende code‑fragmenten laten zien hoe je IProgressCallback gebruikt.
using Aspose.Slides;
using Aspose.Slides.Export;
ISaveOptions saveOptions = new PdfOptions();
saveOptions.ProgressCallback = new ExportProgressHandler();
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("Output.pdf", SaveFormat.Pdf, saveOptions);
}
using Aspose.Slides;
class ExportProgressHandler : IProgressCallback
{
public void Reporting(double progressValue)
{
// Gebruik hier de voortgangspercentagewaarde.
int progress = Convert.ToInt32(progressValue);
Console.WriteLine(progress + "% of the file has been converted.");
}
}
Info
Aspose heeft een gratis PowerPoint‑Splitter‑app ontwikkeld met behulp van haar eigen API. De app laat je een presentatie opsplitsen in meerdere bestanden door geselecteerde dia’s op te slaan als nieuwe PPTX‑ of PPT‑bestanden.FAQ
Is “fast save” (incremental save) ondersteund zodat alleen wijzigingen worden weggeschreven?
Nee. Opslaan maakt iedere keer een volledig doelbestand; incrementeel “fast save” wordt niet ondersteund.
Is het thread‑safe om dezelfde Presentation‑instantie vanaf meerdere threads op te slaan?
Nee. Een Presentation‑instantie is niet thread‑safe; sla deze op vanuit één enkele thread.
Wat gebeurt er met hyperlinks en extern gelinkte bestanden bij het opslaan?
Hyperlinks blijven behouden. Extern gelinkte bestanden (bijv. video’s via relatieve paden) worden niet automatisch gekopieerd — zorg ervoor dat de verwezen paden toegankelijk blijven.
Kan ik documentmetadata (Auteur, Titel, Bedrijf, Datum) instellen/opslaan?
Ja. Standaard documenteigenschappen worden ondersteund en bij het opslaan in het bestand geschreven.