Presentaties opslaan in Java

Overzicht

Open presentaties in Java beschreef hoe de Presentation klasse gebruikt wordt om een presentatie te openen. Dit artikel legt uit hoe je presentaties maakt en opslaat. De Presentation klasse bevat de inhoud van een presentatie. Of je nu een presentatie vanaf nul maakt of een bestaande wijzigt, je wilt deze opslaan wanneer je klaar bent. Met Aspose.Slides for Java 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 opslaformat door aan de methode. Het volgende voorbeeld toont hoe je een presentatie opslaat met Aspose.Slides.

// Instantieer de Presentation-klasse die een presentatiebestand vertegenwoordigt.
Presentation presentation = new Presentation();
try {
    // Doe hier wat werk...

    // Sla de presentatie op naar een bestand.
    presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

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 geschreven worden. In het onderstaande voorbeeld maken we een nieuwe presentatie en slaan we deze op naar een bestands‑stream.

// Instantieer de Presentation-klasse die een presentatiebestand vertegenwoordigt.
Presentation presentation = new Presentation();
try {
    OutputStream fileStream = new FileOutputStream("Output.pptx");
    try {
        // Sla de presentatie op naar de stream.
        presentation.save(fileStream, SaveFormat.Pptx);
    } finally {
        fileStream.close();
    }
} finally {
    presentation.dispose();
}

Presentaties opslaan met een vooraf gedefinieerd weergavetype

Aspose.Slides laat je de initiële weergave instellen die PowerPoint gebruikt wanneer de gegenereerde presentatie wordt geopend via de ViewProperties klasse. Gebruik de setLastView methode met een waarde uit de ViewType enumeratie.

Presentation presentation = new Presentation();
try {
    presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Presentaties opslaan in het Strict Office Open XML‑formaat

Aspose.Slides stelt je in staat een presentatie op te slaan in het Strict Office Open XML‑formaat. Gebruik de PptxOptions klasse en stel de conformance‑eigenschap in bij het opslaan. Als je Conformance.Iso29500_2008_Strict instelt, wordt het uitvoerbestand opgeslagen in het Strict Office Open XML‑formaat.

Het onderstaande voorbeeld maakt een presentatie en slaat deze op in het Strict Office Open XML‑formaat.

PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);

// Instantieer de Presentation-klasse die een presentatiebestand vertegenwoordigt.
Presentation presentation = new Presentation();
try {
    // Sla de presentatie op in het Strict Office Open XML-formaat.
    presentation.save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
} finally {
    presentation.dispose();
}

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 het beperkt het archief tot 65 535 (2^16‑1) bestanden. ZIP64‑formaatuitbreidingen verhogen deze limieten tot 2^64.

De IPptxOptions.setZip64Mode methode laat je kiezen wanneer ZIP64‑formaatuitbreidingen gebruikt worden bij het opslaan van een Office Open XML‑bestand.

Deze methode kan gebruikt worden met de volgende modi:

  • IfNecessary gebruikt ZIP64‑formaatuitbreidingen alleen als de presentatie de bovenstaande limieten overschrijdt. Dit is de standaardmodus.
  • Never gebruikt nooit ZIP64‑formaatuitbreidingen.
  • Always gebruikt altijd ZIP64‑formaatuitbreidingen.

De volgende code toont hoe je een presentatie opslaat als PPTX met ingeschakelde ZIP64‑formaatuitbreidingen:

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setZip64Mode(Zip64Mode.Always);

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

Presentaties opslaan zonder het miniatuurbeeld te vernieuwen

De PptxOptions.setRefreshThumbnail methode regelt de generatie van miniatuurbeelden bij het opslaan van een presentatie naar PPTX:

  • Als ingesteld op true, wordt het miniatuurbeeld ververst tijdens het opslaan. Dit is de standaard.
  • Als ingesteld op false, blijft het huidige miniatuurbeeld behouden. Als de presentatie geen miniatuurbeeld heeft, wordt er geen gegenereerd.

In de code hieronder wordt de presentatie opgeslagen naar PPTX zonder het miniatuurbeeld te vernieuwen.

PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setRefreshThumbnail(false);

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

Voortgangsupdates opslaan in percentage

De IProgressCallback interface wordt gebruikt via de setProgressCallback‑methode die wordt blootgesteld door de ISaveOptions interface en de abstracte SaveOptions klasse. Wijs een IProgressCallback implementatie toe met setProgressCallback om voortgangsupdates tijdens het opslaan als percentage te ontvangen.

De volgende codefragmenten tonen hoe je IProgressCallback gebruikt.

ISaveOptions saveOptions = new PdfOptions();
saveOptions.setProgressCallback(new ExportProgressHandler());

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Output.pdf", SaveFormat.Pdf, saveOptions);
} finally {
    presentation.dispose();
}
class ExportProgressHandler implements IProgressCallback {
    public void reporting(double progressValue) {
        // Gebruik hier de voortgangspercentagewaarde.
        int progress = (int) progressValue;

        System.out.println(progress + "% of the file has been converted.");
    }
}

FAQ

Wordt “snelle opslaan” (incrementeel opslaan) ondersteund zodat alleen wijzigingen worden weggeschreven?

Nee. Opslaan maakt elke keer het volledige doelbestand; incrementeel “snelle opslaan” wordt niet ondersteund.

Is het thread‑safe om dezelfde Presentation‑instantie vanuit 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 gekoppelde bestanden bij het opslaan?

Hyperlinks blijven behouden. Extern gekoppelde bestanden (bijv. video’s via relatieve paden) worden niet automatisch gekopieerd – zorg dat de verwezen paden toegankelijk blijven.

Kan ik document‑metadata (Auteur, Titel, Bedrijf, Datum) instellen/opslaan?

Ja. Standaard documenteigenschappen worden ondersteund en bij het opslaan in het bestand geschreven.