Wie man Präsentationen in .NET erstellt

Wie man Präsentationen in .NET erstellt

Aspose.Slides FOSS für .NET ermöglicht es Ihnen, PowerPoint‑Präsentationen vollständig in C# zu erstellen, ohne dass Microsoft Office erforderlich ist. Dieser Leitfaden zeigt, wie man eine neue Präsentation erstellt, Folien und Formen hinzufügt, Text formatiert und das Ergebnis speichert.

Schritt-für-Schritt-Anleitung

Schritt 1: Installieren Sie das Paket

Installieren Sie Aspose.Slides FOSS von NuGet. .NET 9.0 oder höher ist erforderlich.

dotnet add package Aspose.Slides.Foss

Installation überprüfen:

using Aspose.Slides.Foss;

using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");

Keine weiteren Systempakete sind erforderlich.


Schritt 2: Erforderliche Namespaces importieren

Fügen Sie die Namespaces hinzu, die zum Erstellen und Speichern von Präsentationen benötigt werden.

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

Alle Formtyp‑Konstanten befinden sich in Aspose.Slides.Foss.ShapeType. Alle Formatierungstypen (FillType, NullableBool) befinden sich ebenfalls in Aspose.Slides.Foss.


Schritt 3: Präsentation erstellen

Verwenden Sie new Presentation() mit einer using‑Anweisung. Eine neue Präsentation beginnt mit einer leeren Folie.

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

using var prs = new Presentation();
Console.WriteLine($"Slides in new presentation: {prs.Slides.Count}");
// work with prs
prs.Save("output.pptx", SaveFormat.Pptx);

Wichtig: Verwenden Sie immer Presentation mit einer using-Anweisung. Die Klasse implementiert IDisposable und Ressourcen werden ohne sie nicht korrekt freigegeben.


Schritt 4: Zugriff auf eine Folie

Die erste Folie hat den Index 0. Eine leere Präsentation hat genau eine Folie.

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

using var prs = new Presentation();
var slide = prs.Slides[0];  // zero-based index
Console.WriteLine($"Slide at index 0: {slide}");
prs.Save("output.pptx", SaveFormat.Pptx);

Schritt 5: Form hinzufügen

Verwenden Sie slide.Shapes.AddAutoShape(), um eine AutoShape hinzuzufügen. Die Parameter sind (shapeType, x, y, width, height), alle in Punkten (1 Punkt = 1/72 Zoll; Standardfolie ist 720 × 540 pt).

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

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

// Rectangle at (50, 50) with 400 wide and 120 tall
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 120);

// Attach a text frame
shape.AddTextFrame("Hello from Aspose.Slides FOSS!");

prs.Save("with-shape.pptx", SaveFormat.Pptx);

Schritt 6: Präsentation speichern

Rufen Sie prs.Save(path, SaveFormat.Pptx) auf, bevor das Objekt freigegeben wird. PPTX ist das einzige unterstützte Ausgabeformat.

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

Die Datei wird atomar geschrieben; tritt ein Fehler vor diesem Aufruf auf, wird keine Ausgabedatei erstellt.


Vollständiges funktionierendes Beispiel

Das folgende Programm erstellt eine zweifolige Präsentation mit einer Titelform auf der ersten Folie und einer Tabelle auf der zweiten.

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

using var prs = new Presentation();

// --- Slide 1: title shape ---
var slide1 = prs.Slides[0];
var title = slide1.Shapes.AddAutoShape(ShapeType.Rectangle, 40, 40, 640, 80);
var tf = title.AddTextFrame("Q1 Results: Executive Summary");
var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 32;
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);

// --- Slide 2: table ---
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];
var table = slide2.Shapes.AddTable(40, 40,
    new double[] { 200.0, 120.0, 120.0 },
    new double[] { 40.0, 40.0, 40.0 });

string[] headers = { "Region", "Revenue", "Growth" };
string[][] data = {
    new[] { "North", "$1.2M", "+8%" },
    new[] { "South", "$0.9M", "+4%" },
};

for (int col = 0; col < headers.Length; col++)
    table.Rows[0][col].TextFrame.Text = headers[col];

for (int row = 0; row < data.Length; row++)
    for (int col = 0; col < data[row].Length; col++)
        table.Rows[row + 1][col].TextFrame.Text = data[row][col];

prs.Save("q1-results.pptx", SaveFormat.Pptx);
Console.WriteLine("Saved q1-results.pptx");

Häufige Probleme und Lösungen

ObjectDisposedException

Sie verwenden das Presentation‑Objekt, nachdem der using‑Block beendet wurde. Alle Vorgänge müssen abgeschlossen sein, bevor das Objekt verworfen wird.

Fehler: Fehlender Namensraum für ShapeType

Stellen Sie sicher, dass Sie using Aspose.Slides.Foss; am Anfang Ihrer Datei haben. ShapeType, NullableBool, FillType und andere Enums befinden sich in diesem Namensraum.

SaveFormat außer Pptx

Das Übergeben eines beliebigen SaveFormat‑Werts, der nicht SaveFormat.Pptx ist, löst keine Ausnahme aus. Der Formatparameter wird stillschweigend ignoriert und PPTX wird immer erzeugt. Verwenden Sie stets SaveFormat.Pptx, um eindeutig zu sein.


Häufig gestellte Fragen

Wie lautet die Standardfoliengröße?

Ein neuer Presentation() erstellt Folien in der Standardgröße von 10 × 7,5 Zoll (720 × 540 Punkt). Das Ändern der Foliengröße wird in dieser Ausgabe noch nicht unterstützt.

Kann ich mehr als eine Folie hinzufügen?

Ja. Rufen Sie prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) auf, um eine leere Folie hinzuzufügen und über den Index darauf zuzugreifen:

prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];

Kann ich eine vorhandene Datei öffnen und Folien hinzufügen?

Ja:

using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);

In welche Formate kann ich speichern?

Nur SaveFormat.Pptx wird unterstützt. Der Export nach PDF, HTML, SVG oder Bilder ist in dieser Ausgabe nicht verfügbar.


Siehe auch

 Deutsch