Wie man Präsentationen in .NET lädt

Wie man Präsentationen in .NET lädt

Aspose.Slides FOSS for .NET ermöglicht das Öffnen jeder .pptx‑Datei, das Inspizieren ihres Inhalts und entweder das Speichern zurück in PPTX oder das Extrahieren von Daten daraus. Dieser Leitfaden behandelt das Öffnen einer Datei, das Durchlaufen von Folien, das Lesen von Formtexten und das Round‑Trip‑Speichern.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

dotnet add package Aspose.Slides.Foss

Schritt 2: Öffnen einer vorhandenen Präsentation

Übergeben Sie den Dateipfad an new Presentation(). Verwenden Sie eine using‑Anweisung, um die Bereinigung sicherzustellen.

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

using var prs = new Presentation("input.pptx");
Console.WriteLine($"Slide count: {prs.Slides.Count}");
prs.Save("output.pptx", SaveFormat.Pptx);

Unbekannte XML‑Teile in der Quelldatei werden unverändert beibehalten: Die Bibliothek entfernt niemals Inhalte, die sie noch nicht versteht.


Schritt 3: Folien prüfen

Iterieren Sie über alle Folien und geben Sie deren Index aus:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
for (int i = 0; i < prs.Slides.Count; i++)
{
    var slide = prs.Slides[i];
    int shapeCount = slide.Shapes.Count;
    Console.WriteLine($"Slide {i}: {shapeCount} shapes");
}

Schritt 4: Shape Text lesen

Iterieren Sie über Formen und lesen Sie den Text aus Formen, die ein TextFrame haben:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
foreach (var slide in prs.Slides)
{
    foreach (var shape in slide.Shapes)
    {
        if (shape is IAutoShape autoShape && autoShape.TextFrame != null)
        {
            string text = autoShape.TextFrame.Text;
            if (!string.IsNullOrWhiteSpace(text))
                Console.WriteLine($"  Shape text: {text}");
        }
    }
}

Schritt 5: Dokumenteigenschaften lesen

Zugriff auf Kerndokumenteigenschaften von prs.DocumentProperties:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
var props = prs.DocumentProperties;
Console.WriteLine($"Title:   {props.Title}");
Console.WriteLine($"Author:  {props.Author}");
Console.WriteLine($"Subject: {props.Subject}");

Schritt 6: Round‑Trip‑Speichern

Nachdem Sie die Präsentation überprüft oder geändert haben, speichern Sie sie wieder im PPTX-Format:

prs.Save("output.pptx", SaveFormat.Pptx);

Das Speichern an einem anderen Pfad erstellt eine neue Datei. Das Speichern am selben Pfad überschreibt das Original.


Häufige Probleme und Lösungen

FileNotFoundException

Überprüfen Sie, dass der Pfad zur .pptx‑Datei relativ zum Arbeitsverzeichnis korrekt ist. Verwenden Sie Path.Combine für eine robuste Pfadkonstruktion:

string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);

Exception: File format is not supported

Die Bibliothek unterstützt nur .pptx (Office Open XML). Legacy .ppt (binäre PowerPoint 97‑2003)-Dateien werden nicht unterstützt.

Shapes haben keine TextFrame-Eigenschaft

Einige Formen (Connector, PictureFrame) haben kein TextFrame. Casten Sie zu IAutoShape und prüfen Sie auf null, bevor Sie auf den Text zugreifen.


Häufig gestellte Fragen

Bewahrt das Laden den gesamten Originalinhalt?

Ja. Unbekannte XML‑Teile werden beim Round‑Trip‑Speichern unverändert beibehalten. Die Bibliothek entfernt keinen XML‑Inhalt, den sie noch nicht erkennt.

Kann ich eine passwortgeschützte PPTX laden?

Passwortgeschützte (verschlüsselte) Präsentationen werden in dieser Ausgabe nicht unterstützt.

Kann ich eingebettete Bilder extrahieren?

Greifen Sie auf die Bildersammlung zu: prs.Images gibt das ImageCollection zurück. Jedes Bild hat Eigenschaften, um die Rohbilddaten zu lesen.

Wird das Laden aus einem MemoryStream unterstützt?

Ja. Der Presentation‑Konstruktor akzeptiert ein Stream:

using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");

Siehe auch

 Deutsch