Präsentationen in .NET öffnen

Einleitung

Aspose.Slides for .NET kann PowerPoint- und OpenDocument-Präsentationen aus Dateien und Streams laden. Nachdem eine Präsentation geladen wurde, können Sie ihre Struktur prüfen, Folien bearbeiten, Ressourcen verwalten und sie im ursprünglichen oder in einem anderen unterstützten Format speichern.

Das Ladeverhalten kann über die Klasse LoadOptions angepasst werden. Beispielsweise können Sie ein Öffnungspasswort angeben, große Binärobjekte außerhalb des verwalteten Speichers halten, externe Ressourcen steuern oder eingebettete Binärdaten weglassen.

Präsentationen öffnen

Nach dem Laden einer Datei oder eines Streams können Sie das ursprüngliche Präsentationsformat ermitteln, um zu entscheiden, wie Ihre Anwendung sie verarbeitet.

Um eine vorhandene Präsentation zu öffnen, übergeben Sie ihren Dateipfad an den Konstruktor von Presentation. Entsorgen Sie das Presentation-Objekt nach Gebrauch, damit Dateihandles, temporäre Daten und andere Ressourcen zügig freigegeben werden.

Das folgende C#-Beispiel zeigt, wie man eine Präsentation öffnet und die Folienzahl ermittelt:

using System;
using Aspose.Slides;

using var presentation = new Presentation("sample.pptx");

Console.WriteLine("Slide count: " + presentation.Slides.Count);

Passwortgeschützte Präsentationen öffnen

Ein Öffnungspasswort verschlüsselt den Präsentationsinhalt. Um die gesamte Präsentation zu laden, weisen Sie das korrekte Passwort LoadOptions.Password zu und übergeben Sie die Optionen an den Presentation-Konstruktor. Das Laden schlägt fehl, wenn das Passwort fehlt oder falsch ist.

using System;
using Aspose.Slides;

var loadOptions = new LoadOptions { Password = "open_password" };
using var presentation = new Presentation("encrypted-presentation.pptx", loadOptions);

Console.WriteLine("Slide count: " + presentation.Slides.Count);

Für Passworterkennung, -validierung und -verschlüsselungs-Workflows siehe Password-Protect Presentations. Wenn eine verschlüsselte Präsentation bewusst mit öffentlichen Dokumenteneigenschaften gespeichert wurde, können diese Eigenschaften ohne Passwort gelesen werden; siehe Manage Presentation Properties.

Große Präsentationen öffnen

LoadOptions.BlobManagementOptions steuert, wie Aspose.Slides große Binärobjekte wie Bilder, Audio und Video behandelt. Sie können die Quelldatei gesperrt lassen, temporäre Dateien zulassen und die Menge an BLOB-Daten, die im Speicher gehalten wird, begrenzen.

Der folgende C#-Code demonstriert das Laden einer großen Präsentation (z. B. 2 GB):

using Aspose.Slides;
using Aspose.Slides.Export;

const string filePath = "large-presentation.pptx";

var loadOptions = new LoadOptions
{
    BlobManagementOptions =
    {
        PresentationLockingBehavior = PresentationLockingBehavior.KeepLocked,
        IsTemporaryFilesAllowed = true,
        MaxBlobsBytesInMemory = 10 * 1024 * 1024
    }
};

using var presentation = new Presentation(filePath, loadOptions);

presentation.Slides[0].Name = "Large presentation";
presentation.Save("large-presentation-copy.pptx", SaveFormat.Pptx);

Externe Ressourcen steuern

LoadOptions.ResourceLoadingCallback akzeptiert eine Implementierung von IResourceLoadingCallback. Der Callback kann Ersatzdaten bereitstellen, eine Ressource umleiten, den Standard-Lader verwenden oder die Ressource ueberspringen. Dies ist nützlich, wenn Präsentationen externe Bilder enthalten, die gemessen an anwendungsspezifischen Sicherheits- oder Speicherregeln aufgeloest werden muessen.

using System;
using System.IO;
using Aspose.Slides;

internal static class OpenPresentationExample
{
    private static void Main()
    {
        var loadOptions = new LoadOptions
        {
            ResourceLoadingCallback = new ImageLoadingHandler()
        };

        using var presentation = new Presentation("presentation-with-external-images.pptx", loadOptions);
        Console.WriteLine("Slide count: " + presentation.Slides.Count);
    }

    private sealed class ImageLoadingHandler : IResourceLoadingCallback
    {
        public ResourceLoadingAction ResourceLoading(IResourceLoadingArgs args)
        {
            var isJpeg = args.OriginalUri.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase);
            if (!isJpeg || !File.Exists("approved-image.jpg"))
            {
                return ResourceLoadingAction.Skip;
            }

            var imageData = File.ReadAllBytes("approved-image.jpg");
            args.SetData(imageData);
            return ResourceLoadingAction.UserProvided;
        }
    }
}

Präsentationen ohne eingebettete Binärobjekte laden

Eine Präsentation kann eingebettete Binärdaten enthalten, die eine Anwendung nicht benoetigt oder nicht behalten moechte. Beispiele:

Setzen Sie LoadOptions.DeleteEmbeddedBinaryObjects auf true, um diese Binärdaten beim Laden zu entfernen. Speichern Sie die geladene Präsentation, um das bereinigte Ergebnis zu erhalten.

Diese Option reduziert die Gefahr unerwuenschter eingebetteter Payloads, stellt jedoch kein vollstaendiges Malware-Erkennungs- oder Inhalts-Sanitaersystem dar.

using Aspose.Slides;
using Aspose.Slides.Export;

var loadOptions = new LoadOptions
{
    DeleteEmbeddedBinaryObjects = true
};

using var presentation = new Presentation("presentation-with-embedded-data.pptx", loadOptions);

presentation.Save("presentation-without-embedded-data.pptx", SaveFormat.Pptx);

FAQ

Wie kann ich feststellen, dass eine Datei beschädigt ist und nicht geoeffnet werden kann?

Aspose.Slides wirft beim Laden eine Parsing- oder Format-Ausnahme. Behandeln Sie diesen Fehler separat von einem falschen Passwort-Fehler, damit die Anwendung die Ursache korrekt melden kann.

Was passiert, wenn erforderliche Schriften fehlen?

Die Präsentation kann dennoch geladen werden, aber Rendering und Export koennen Schriften substituieren. Sie können die Schriftart-Substitution konfigurieren oder benutzerdefinierte Schriften bereitstellen, um das Ausgabeergebnis vorhersehbarer zu machen.

Wird beim Laden einer Präsentation auch deren eingebettete Medien geladen?

Eingebettete Audio- und Videodaten werden ueber das Praesentation-Objektmodell verfuegbar. Externe Ressourcen werden gemaess dem konfigurierten Ressourcen-Ladeverhalten aufgeloest und koennen nicht verfuegbar sein, wenn ihre Speicherorte nicht erreichbar sind.