Hoe Presentaties te Maken in .NET
Aspose.Slides FOSS for .NET stelt je in staat om PowerPoint‑presentaties volledig in C# te maken zonder afhankelijkheid van Microsoft Office. Deze gids laat zien hoe je een nieuwe presentatie maakt, dia’s en vormen toevoegt, tekst opmaakt en het resultaat opslaat.
Stapsgewijze handleiding
Stap 1: Installeer het pakket
Installeer Aspose.Slides FOSS van NuGet. .NET 9.0 of hoger is vereist.
dotnet add package Aspose.Slides.FossControleer de installatie:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");Er zijn geen andere systeempakketten vereist.
Stap 2: Importeer de vereiste namespaces
Voeg de benodigde namespaces toe voor het maken en opslaan van presentaties.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;Alle shape-type constanten bevinden zich in Aspose.Slides.Foss.ShapeType. Alle opmaaktypes (FillType, NullableBool) staan ook in Aspose.Slides.Foss.
Stap 3: Maak een presentatie
Gebruik new Presentation() met een using statement. Een nieuwe presentatie begint met één lege dia.
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);Belangrijk: Gebruik altijd Presentation met een using statement. De klasse implementeert IDisposable en resources worden niet correct vrijgegeven zonder dit.
Stap 4: Open een dia
De eerste dia bevindt zich op index 0. Een lege presentatie heeft precies één dia.
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);Stap 5: Voeg een vorm toe
Gebruik slide.Shapes.AddAutoShape() om een AutoShape toe te voegen. De parameters zijn (shapeType, x, y, width, height), allemaal in punten (1 punt = 1/72 inch; standaard dia is 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);Stap 6: Sla de presentatie op
Roep prs.Save(path, SaveFormat.Pptx) aan voordat het object wordt verwijderd. PPTX is het enige ondersteunde uitvoerformaat.
prs.Save("result.pptx", SaveFormat.Pptx);Het bestand wordt atomair geschreven; als er een fout optreedt vóór deze aanroep, wordt er geen uitvoerbestand aangemaakt.
Volledig werkend voorbeeld
Het volgende programma maakt een presentatie met twee dia’s, met een titelvorm op de eerste dia en een tabel op de tweede.
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");Veelvoorkomende problemen en oplossingen
ObjectDisposedException
U gebruikt het Presentation‑object nadat het using‑blok is beëindigd. Alle werk moet plaatsvinden voordat het object wordt verwijderd.
Ontbrekende namespace‑fout voor ShapeType
Zorg ervoor dat je using Aspose.Slides.Foss; bovenaan je bestand hebt. ShapeType, NullableBool, FillType en andere enums bevinden zich in deze namespace.
SaveFormat anders dan Pptx
Het doorgeven van een SaveFormat‑waarde anders dan SaveFormat.Pptx veroorzaakt geen uitzondering. De format‑parameter wordt stilzwijgend genegeerd en PPTX wordt altijd geproduceerd. Gebruik altijd SaveFormat.Pptx om expliciet te zijn.
Veelgestelde vragen
Wat is de standaarddiaformaat?
Een nieuwe Presentation() maakt dia’s aan in de standaardgrootte van 10 × 7,5 inch (720 × 540 punten). Het wijzigen van de dia‑grootte wordt in deze editie nog niet ondersteund.
Kan ik meer dan één dia toevoegen?
Ja. Roep prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) aan om een lege dia toe te voegen en er via de index toegang toe te krijgen:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];Kan ik een bestaand bestand openen en dia’s toevoegen?
Ja:
using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);Naar welke formaten kan ik opslaan?
Alleen SaveFormat.Pptx wordt ondersteund. Exporteren naar PDF, HTML, SVG of afbeeldingen is niet beschikbaar in deze editie.