Hur man skapar presentationer i .NET

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.Foss

Verifiera 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.


Se även

 Svenska