Wie man Präsentationen in .NET lädt
Aspose.Slides FOSS for .NET lets you open any .pptx Datei, prüfen Sie deren Inhalt und speichern Sie sie entweder wieder als PPTX oder extrahieren Sie Daten daraus. Diese Anleitung 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.FossSchritt 2: Eine vorhandene Präsentation öffnen
Übergeben Sie den Dateipfad an new Presentation(). Verwenden Sie ein using Anweisung, um Aufräumen 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 untersuchen
Durchlaufen Sie 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: Formtext lesen
Iterieren Sie über Formen und lesen Sie Text aus Formen, die ein TextFrame:
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
Greifen Sie auf Kerndokumenteigenschaften zu 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 untersucht oder geändert haben, speichern Sie sie wieder als PPTX:
prs.Save("output.pptx", SaveFormat.Pptx);Das Speichern an einen anderen Pfad erstellt eine neue Datei. Das Speichern am selben Pfad überschreibt die Originaldatei.
Häufige Probleme und Lösungen
FileNotFoundException
Überprüfen Sie, dass der Pfad zu dem .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 .pptx (Office Open XML) nur. Legacy .ppt (binäre PowerPoint 97-2003) Dateien werden nicht unterstützt.
Formen besitzen keine TextFrame‑Eigenschaft
Einige Formen (Connector, PictureFrame) haben keinen TextFrame. Cast zu IAutoShape und prüfen Sie auf null, bevor Sie auf den Text zugreifen.
Häufig gestellte Fragen
Wird beim Laden der gesamte Originalinhalt erhalten?
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 ein passwortgeschütztes PPTX laden?
Passwortgeschützte (verschlüsselte) Präsentationen werden in dieser Edition nicht unterstützt.
Kann ich eingebettete Bilder extrahieren?
Greifen Sie auf die Bildersammlung zu: prs.Images gibt das ImageCollection. 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}");