Open Presentaties in .NET

Inleiding

Naast het maken van PowerPoint‑presentaties vanaf nul, stelt Aspose.Slides u ook in staat bestaande presentaties te openen. Nadat u een presentatie hebt geladen, kunt u er informatie over opvragen, de inhoud van dia’s bewerken, nieuwe dia’s toevoegen, bestaande dia’s verwijderen en meer.

Presentaties openen

Om een bestaande presentatie te openen, instantieer de Presentation klasse en geef het bestandspad door aan de constructor.

Het volgende C#‑voorbeeld laat zien hoe u een presentatie opent en het aantal dia’s opvraagt:

// Maak een instantie van de Presentation‑klasse en geef een bestandspad door aan de constructor.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
    // Print het totale aantal dia's in de presentatie.
    System.Console.WriteLine(presentation.Slides.Count);
}

Wachtwoord‑beveiligde presentaties openen

Wanneer u een wachtwoord‑beveiligde presentatie moet openen, geef dan het wachtwoord door via de Password eigenschap van de LoadOptions klasse om deze te ontsleutelen en te laden. De volgende C#‑code demonstreert deze bewerking:

LoadOptions loadOptions = new LoadOptions {Password = "YOUR_PASSWORD"};
using (Presentation presentation = new Presentation("Sample.pptx", loadOptions))
{
    // Voer bewerkingen uit op de gedecrypteerde presentatie.
}

Grote presentaties openen

Aspose.Slides biedt opties—met name de BlobManagementOptions eigenschap in de LoadOptions klasse—om u te helpen grote presentaties te laden.

De volgende C#‑code toont het laden van een grote presentatie (bijvoorbeeld 2 GB):

const string filePath = "LargePresentation.pptx";

LoadOptions loadOptions = new LoadOptions
{
    BlobManagementOptions = 
    {
        // Kies het KeepLocked‑gedrag – het presentiebestand blijft vergrendeld gedurende de levensduur van 
        // de Presentation‑instantie, maar hoeft niet in het geheugen geladen te worden of gekopieerd naar een tijdelijk bestand.
        PresentationLockingBehavior = PresentationLockingBehavior.KeepLocked,
        IsTemporaryFilesAllowed = true,
        MaxBlobsBytesInMemory = 10 * 1024 * 1024 // 10 MB
    }
};

using (Presentation presentation = new Presentation(filePath, loadOptions))
{
    // De grote presentatie is geladen en kan gebruikt worden, terwijl het geheugenverbruik laag blijft.

    // Breng wijzigingen aan in de presentatie.
    presentation.Slides[0].Name = "Large presentation";

    // Sla de presentatie op naar een ander bestand. Het geheugenverbruik blijft laag tijdens deze bewerking.
    presentation.Save("LargePresentation-copy.pptx", SaveFormat.Pptx);

    // Doe dit niet! Er wordt een I/O‑exceptie gegooid omdat het bestand vergrendeld blijft tot het presentatie‑object wordt vrijgegeven.
    File.Delete(filePath);
}

// Het is hier wel toegestaan. Het bronbestand is niet meer vergrendeld door het presentatie‑object.
File.Delete(filePath);

Externe bronnen beheren

Aspose.Slides biedt de IResourceLoadingCallback interface waarmee u externe bronnen kunt beheren. De volgende C#‑code laat zien hoe u de IResourceLoadingCallback‑interface gebruikt:

LoadOptions loadOptions = new LoadOptions();
loadOptions.ResourceLoadingCallback = new ImageLoadingHandler();

Presentation presentation = new Presentation("Sample.pptx", loadOptions);
public class ImageLoadingHandler : IResourceLoadingCallback
{
    public ResourceLoadingAction ResourceLoading(IResourceLoadingArgs args)
    {
        if (args.OriginalUri.EndsWith(".jpg"))
        {
            try
            {
                // Laad een vervangende afbeelding.
                byte[] imageData = File.ReadAllBytes("aspose-logo.jpg");
                args.SetData(imageData);
                return ResourceLoadingAction.UserProvided;
            }
            catch (Exception)
            {
                return ResourceLoadingAction.Skip;
            }
        }
        else if (args.OriginalUri.EndsWith(".png"))
        {
            // Stel een vervangende URL in.
            args.Uri = "http://www.google.com/images/logos/ps_logo2.png";
            return ResourceLoadingAction.Default;
        }

        // Sla alle andere afbeeldingen over.
        return ResourceLoadingAction.Skip;
    }
}

Presentaties laden zonder ingebedde binaire objecten

Een PowerPoint‑presentatie kan de volgende soorten ingebedde binaire objecten bevatten:

Met behulp van de ILoadOptions.DeleteEmbeddedBinaryObjects eigenschap kunt u een presentatie laden zonder enige ingebedde binaire objecten.

Deze eigenschap is nuttig om mogelijk kwaadaardige binaire inhoud te verwijderen. De volgende C#‑code laat zien hoe u een presentatie laadt zonder enige ingebedde binaire inhoud:

LoadOptions loadOptions = new LoadOptions()
{
    DeleteEmbeddedBinaryObjects = true
}

using (Presentation presentation = new Presentation("malware.ppt", loadOptions))
{
    // Voer bewerkingen uit op de presentatie.
}

FAQ

Hoe kan ik zien dat een bestand corrupt is en niet geopend kan worden?

U krijgt een parsing‑/formatvalidatie‑exception tijdens het laden. Dergelijke fouten vermelden vaak een ongeldige ZIP‑structuur of beschadigde PowerPoint‑records.

Wat gebeurt er als vereiste lettertypen ontbreken bij het openen?

Het bestand wordt geopend, maar later kan rendering/export lettertypen vervangen. Configureer lettertype‑substituties of voeg de vereiste lettertypen toe aan de runtime‑omgeving.

Wat gebeurt er met ingebedde media (video/audio) bij het openen?

Ze worden beschikbaar als presentatieressources. Als media via externe paden worden verwezen, zorg dan dat die paden toegankelijk zijn in uw omgeving; anders kan rendering/export de media weglaten.