Hur man skapar presentationer i .NET
Aspose.Slides FOSS for .NET låter dig skapa PowerPoint-presentationer helt i C# utan beroende av Microsoft Office. Denna guide visar hur du skapar en ny presentation, lägger till bilder och former, formaterar text och sparar resultatet.
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 shape‑typkonstanter 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 ett using‑uttalande. 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 ett using-uttalande. Klassen implementerar IDisposable och resurser kommer inte att släppas korrekt utan det.
Steg 4: Åtkomst till en bild
Den första bilden är på 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 × 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 har frigjorts. PPTX är det enda stödda utdataformatet.
prs.Save("result.pptx", SaveFormat.Pptx);Filen skrivs atomärt; om ett fel uppstår innan detta anrop, skapas ingen utdatafil.
Fullständigt fungerande exempel
Följande program skapar en tvåbildspresentation 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 att using-blocket har avslutats. Allt arbete måste ske innan objektet har frigjorts.
Fel: saknad namnrymd för ShapeType
Se till att du har using Aspose.Slides.Foss; högst upp i din fil. ShapeType, NullableBool, FillType och andra enums finns i detta namespace.
SaveFormat annat än Pptx
Att skicka något SaveFormat‑värde annat än SaveFormat.Pptx kastar inte ett undantag. Format‑parametern ignoreras tyst och PPTX genereras alltid. Använd alltid SaveFormat.Pptx för att vara tydlig.
Vanliga frågor
Vad är standardstorleken på bilden?
En ny Presentation() skapar bilder i standardstorleken 10 × 7,5 tum (720 × 540 punkt). Att ändra bildstorleken stöds ännu inte i den här utgåvan.
Kan jag lägga till mer än en slide?
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.