Einleitung

Aspose.Slides FOSS für .NET bietet einen umfassenden Satz von Klassen zur Verwaltung von PowerPoint-Präsentationen vollständig in C#. Die Bibliothek ermöglicht das Erstellen neuer .pptx Dateien von Grund auf, das Laden vorhandener, das Manipulieren von Folien und Formen und das Speichern des Ergebnisses zurück auf die Festplatte – alles ohne die Installation von Microsoft Office oder einer externen Abhängigkeit.

Das Aspose.Slides.Foss NuGet-Paket zielt auf .NET 9.0 ab und läuft identisch unter Windows, macOS, Linux und Docker‑Containern. Es wird unter der MIT‑Lizenz veröffentlicht, sodass Sie es in kommerziellen und Open‑Source‑Projekten ohne Einschränkungen verwenden können.

Dieser Beitrag führt durch die Kernfunktionen der Präsentationsverwaltung: Arbeiten mit Folien, Erstellen von Formenhierarchien, Organisieren von Text, Verwalten von Tabellen und Speichern als PPTX.


Was ist enthalten

Erstellen und Laden von Präsentationen

Die Presentation‑Klasse ist der Einstiegspunkt für jede Operation. Sie können eine leere Präsentation erstellen, eine von einem Dateipfad laden oder aus einem Stream lesen. Die Klasse implementiert IDisposable, sodass das Einbetten in eine using‑Anweisung sicherstellt, dass Ressourcen ordnungsgemäß freigegeben werden.

// Create a brand-new, empty presentation
using var pres = new Presentation();

// Load an existing file
using var existing = new Presentation("report.pptx");

Das Presentation‑Objekt stellt die vollständige Folienhierarchie über Eigenschaften wie Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images und NotesSize bereit.

Arbeiten mit Slides

Das SlideCollection, das von Presentation.Slides zurückgegeben wird, unterstützt das Hinzufügen, Klonen, Einfügen, Neuordnen und Entfernen von Folien. Sie können eine Folie innerhalb derselben Präsentation oder über mehrere Präsentationen hinweg klonen, wobei Layouts beibehalten oder neu zugeordnet werden.

using var pres = new Presentation();

// The default presentation contains one blank slide
var firstSlide = pres.Slides[0];

// Clone the first slide and append it
pres.Slides.AddClone(firstSlide);

// Insert a clone at a specific position
pres.Slides.InsertClone(1, firstSlide);

// Remove a slide by index
pres.Slides.RemoveAt(2);

// Total slide count
int count = pres.Slides.Count;

Jedes Slide stellt SlideNumber, Hidden, LayoutSlide, NotesSlideManager und Name bereit. Sie können die Sammlung mit foreach iterieren oder sie mit ToArray() in ein Array konvertieren.

Formen und Autoformen

Jede Folie enthält ein ShapeCollection, das über Slide.Shapes zugänglich ist. Die Sammlung bietet Fabrikmethoden für die gängigsten Formtypen.

using var pres = new Presentation();
var slide = pres.Slides[0];

// Add a rectangle AutoShape
var rect = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 50, 300, 150);

// Add a connector
var connector = slide.Shapes.AddConnector(
    ShapeType.BentConnector3, 100, 200, 200, 50);

// Reorder a shape to bring it forward
slide.Shapes.Reorder(0, rect);

// Remove all shapes
slide.Shapes.Clear();

Die AddAutoShape‑ und InsertAutoShape‑Methoden akzeptieren einen ShapeType‑Enum‑Wert sowie Positions‑ und Größenkoordinaten. AddConnector, InsertConnector, AddPictureFrame und InsertPictureFrame folgen dem gleichen Muster.

Text: Absätze und Abschnitte

Text in einer Präsentation befindet sich in einem TextFrame, das ein ParagraphCollection enthält. Jeder Paragraph enthält ein PortionCollection von Portion-Objekten, die einzelnen Textläufe mit unabhängiger Formatierung darstellen.

using var pres = new Presentation();
var slide = pres.Slides[0];

var shape = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 50, 400, 200);

// Access the shape's text frame
var tf = shape.TextFrame;

// Read or set the full text
tf.Text = "Hello, presentation world!";

// Work with individual paragraphs and portions
var para = new Paragraph();
var portion = new Portion("Formatted run");
para.Portions.Add(portion);
tf.Paragraphs.Add(para);

Jedes Portion hat eine PortionFormat‑Eigenschaft zur Steuerung von Schriftart, Größe, Fett/Kursiv, Farbe, Unterstreichung und anderen zeichenbezogenen Attributen. ParagraphFormat steuert Ausrichtung, Aufzählungsstil, Abstand und Einrückung.

Tabellen

Tabellen werden über ShapeCollection.AddTable hinzugefügt, das Spaltenbreiten und Zeilenhöhen als Arrays akzeptiert. Das zurückgegebene Table‑Objekt bietet Zugriff auf Rows, Columns und einzelne Cell‑Objekte.

using var pres = new Presentation();
var slide = pres.Slides[0];

double[] colWidths = { 150, 150, 150 };
double[] rowHeights = { 40, 40, 40 };

var table = slide.Shapes.AddTable(
    50, 50, colWidths, rowHeights);

// Set text in a cell
table.Rows[0][0].TextFrame.Text = "Header 1";
table.Rows[0][1].TextFrame.Text = "Header 2";
table.Rows[0][2].TextFrame.Text = "Header 3";

// Merge cells
table.MergeCells(table.Rows[1][0], table.Rows[1][2], false);

// Style presets
table.StylePreset = TableStylePreset.MediumStyle2Accent1;

Speichern von Präsentationen

Die Presentation.Save‑Methode schreibt das Dokument in eine Datei oder einen Stream. Das SaveFormat‑Enum gibt das Ausgabeformat an. PPTX ist das primär unterstützte Ausgabeformat.

using var pres = new Presentation();
// ... build slides ...

// Save to a file
pres.Save("output.pptx", SaveFormat.Pptx);

// Save to a stream
using var ms = new MemoryStream();
pres.Save(ms, SaveFormat.Pptx);

// Save specific slides by index
pres.Save("subset.pptx", new[] { 1, 3 }, SaveFormat.Pptx);

Sie können auch ein SaveOptions‑Objekt übergeben, um zusätzliche Kontrolle über die Ausgabe zu erhalten.


Schnellstart

Installieren Sie das Paket über die .NET‑CLI:

dotnet add package aspose.slides.foss

Erstellen und speichern Sie dann eine minimale Präsentation:

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

// 1. Create a new presentation
using var pres = new Presentation();

// 2. Get the default slide
var slide = pres.Slides[0];

// 3. Add a title shape
var title = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 30, 600, 60);
title.TextFrame.Text = "Quarterly Report";

// 4. Add a content shape
var body = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 120, 600, 300);
var para = new Paragraph();
para.Portions.Add(new Portion("Revenue grew 12% year-over-year."));
body.TextFrame.Paragraphs.Add(para);

// 5. Save as PPTX
pres.Save("quarterly-report.pptx", SaveFormat.Pptx);

Unterstützte Formate

FormatErweiterungLesenSchreiben
PPTX.pptxJaJa
PPSX.ppsxNeinJa
PPTM.pptmNeinJa
POTX.potxNeinJa
ODP.odpNeinJa
FODP.fodpNeinJa

Hinweis: Die Bibliothek liest und schreibt PPTX nativ. Andere im SaveFormat‑Enum aufgelistete Formate werden auf API‑Ebene deklariert; die tatsächliche Exporttreue kann variieren. Legacy .ppt‑Binärformat wird nicht unterstützt.


Open Source & Lizenzierung

Aspose.Slides FOSS for .NET wird unter der MIT-Lizenz veröffentlicht. Der vollständige Quellcode ist auf GitHub verfügbar. Sie können ihn in kommerziellen und Open‑Source‑Projekten verwenden, den Code ändern und ohne Einschränkung weiterverbreiten. Es ist kein API‑Schlüssel, keine Lizenzdatei und keine Registrierung erforderlich.


Erste Schritte