Hur man skapar presentationer i .NET
Aspose.Slides FOSS for .NET lets you create PowerPoint presentations entirely in C# with no dependency on Microsoft Office. This guide shows how to create a new presentation, add slides and shapes, format text, and save the result.
Steg-för-steg-guide
Steg 1: Installera paketet
Installera Aspose.Slides FOSS från NuGet. .NET 9.0 eller senare krävs.
dotnet add package Aspose.Slides.FossVerifiera installationen:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");Inga andra systempaket krävs.
Steg 2: Importera de nödvändiga namnrymderna
Lägg till de namnrymder som behövs för att skapa och spara presentationer.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;Alla konstanter för formtyper finns i Aspose.Slides.Foss.ShapeType. Alla formateringstyper (FillType, NullableBool) finns också i Aspose.Slides.Foss.
Steg 3: Skapa en presentation
Använd new Presentation() med en using sats. En ny presentation startar med en tom bild.
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);Viktigt: Använd alltid Presentation med en using sats. Klassen implementerar IDisposable och resurser kommer inte att frigöras korrekt utan den.
Steg 4: Åtkomst till en bild
Den första bilden har index 0. En tom presentation har exakt en bild.
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);Steg 5: Lägg till en form
Använd slide.Shapes.AddAutoShape() för att lägga till en AutoShape. Parametrarna är (shapeType, x, y, width, height) alla i punkter (1 punkt = 1/72 tum; standardbild är 720 x 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);Steg 6: Spara presentationen
Anropa prs.Save(path, SaveFormat.Pptx) innan objektet tas bort. PPTX är det enda stödda utdataformatet.
prs.Save("result.pptx", SaveFormat.Pptx);Filen skrivs atomärt; om ett fel inträffar innan detta anrop skapas ingen utdatafil.
Fullständigt fungerande exempel
Följande program skapar en presentation med två bilder med en titelform på den första bilden och en tabell på den andra.
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");Vanliga problem och lösningar
ObjectDisposedException
Du använder Presentation objektet efter using blocket har avslutats. Allt arbete måste ske innan objektet tas bort.
Saknat namnrymdsfel för ShapeType
Se till att du har using Aspose.Slides.Foss; överst i din fil. ShapeType, NullableBool, FillType, och andra enums finns i detta namnrymd.
SaveFormat annat än Pptx
Att skicka någon SaveFormat värde annat än SaveFormat.Pptx kastar inte ett undantag. Formatparametern ignoreras tyst och PPTX genereras alltid. Använd alltid SaveFormat.Pptx för att vara explicit.
Vanliga frågor
Vad är standardstorleken på bilden?
En ny Presentation() skapar bilder i standardstorleken 10 x 7,5 tum (720 x 540 punkter). Att ändra bildstorleken stöds ännu inte i den här utgåvan.
Kan jag lägga till mer än en bild?
Ja. Anropa prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) för att lägga till en tom bild och komma åt den via index:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];Kan jag öppna en befintlig fil och lägga till bilder?
Ja:
using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);Vilka format kan jag spara till?
Endast SaveFormat.Pptx stöds. Export till PDF, HTML, SVG eller bilder är inte tillgängligt i den här utgåvan.