Introduktion

Aspose.Slides FOSS för .NET tillhandahåller ett omfattande set av klasser för att hantera PowerPoint-presentationer helt i C#. Biblioteket låter dig skapa nya .pptx-filer från grunden, läsa in befintliga, manipulera bilder och former, och spara resultatet tillbaka till disk – allt utan att installera Microsoft Office eller någon extern beroende.

Aspose.Slides.Foss NuGet-paketet riktar sig mot .NET 9.0 och körs identiskt på Windows, macOS, Linux och Docker-containrar. Det är släppt under MIT-licensen, så du kan använda det i kommersiella och öppna källkodsprojekt utan några restriktioner.

Detta inlägg går igenom de grundläggande funktionerna för presentationshantering: arbeta med bilder, bygga formhierarkier, organisera text, hantera tabeller och spara till PPTX.


Vad som ingår

Skapa och ladda presentationer

Klassen Presentation är ingångspunkten för varje operation. Du kan skapa en tom presentation, ladda en från en filsökväg eller läsa från en ström. Klassen implementerar IDisposable, så att omsluta den i ett using‑uttryck säkerställer att resurserna frigörs korrekt.

// Create a brand-new, empty presentation
using var pres = new Presentation();

// Load an existing file
using var existing = new Presentation("report.pptx");

Objektet Presentation exponerar hela bildhierarkin genom egenskaper såsom Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images och NotesSize.

Arbeta med Slides

SlideCollection som returneras av Presentation.Slides stöder att lägga till, klona, infoga, omordna och ta bort bilder. Du kan klona en bild inom samma presentation eller över flera presentationer samtidigt som du bevarar eller omkartlägger layouter.

using var pres = new Presentation();

// The default presentation contains one blank slide
var firstSlide = pres.Slides[0];

// Clone the first slide and append it
pres.Slides.AddClone(firstSlide);

// Insert a clone at a specific position
pres.Slides.InsertClone(1, firstSlide);

// Remove a slide by index
pres.Slides.RemoveAt(2);

// Total slide count
int count = pres.Slides.Count;

Varje Slide exponerar SlideNumber, Hidden, LayoutSlide, NotesSlideManager och Name. Du kan iterera samlingen med foreach eller konvertera den till en array med ToArray().

Former och AutoFormer

Varje bild innehåller en ShapeCollection som är åtkomlig via Slide.Shapes. Samlingen tillhandahåller fabriksmetoder för de vanligaste formtyperna.

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

// Add a rectangle AutoShape
var rect = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 50, 300, 150);

// Add a connector
var connector = slide.Shapes.AddConnector(
    ShapeType.BentConnector3, 100, 200, 200, 50);

// Reorder a shape to bring it forward
slide.Shapes.Reorder(0, rect);

// Remove all shapes
slide.Shapes.Clear();

AddAutoShape- och InsertAutoShape-metoderna accepterar ett ShapeType enum‑värde plus positions‑ och storlekskoordinater. AddConnector, InsertConnector, AddPictureFrame och InsertPictureFrame följer samma mönster.

Text: Paragrafer och delar

Text i en presentation finns inuti en TextFrame, som innehåller en ParagraphCollection. Varje Paragraph innehåller en PortionCollection av Portion‑objekt som representerar enskilda textkörningar med oberoende formatering.

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

var shape = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 50, 400, 200);

// Access the shape's text frame
var tf = shape.TextFrame;

// Read or set the full text
tf.Text = "Hello, presentation world!";

// Work with individual paragraphs and portions
var para = new Paragraph();
var portion = new Portion("Formatted run");
para.Portions.Add(portion);
tf.Paragraphs.Add(para);

Varje Portion har en PortionFormat‑egenskap för att styra teckensnitt, storlek, fet/kursiv, färg, understrykning och andra teckennivåattribut. ParagraphFormat styr justering, punktlistestil, avstånd och indrag.

Tabeller

Tabeller läggs till via ShapeCollection.AddTable, som accepterar kolumnbredder och radhöjder som arrayer. Det returnerade Table‑objektet ger åtkomst till Rows, Columns och enskilda Cell‑objekt.

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

double[] colWidths = { 150, 150, 150 };
double[] rowHeights = { 40, 40, 40 };

var table = slide.Shapes.AddTable(
    50, 50, colWidths, rowHeights);

// Set text in a cell
table.Rows[0][0].TextFrame.Text = "Header 1";
table.Rows[0][1].TextFrame.Text = "Header 2";
table.Rows[0][2].TextFrame.Text = "Header 3";

// Merge cells
table.MergeCells(table.Rows[1][0], table.Rows[1][2], false);

// Style presets
table.StylePreset = TableStylePreset.MediumStyle2Accent1;

Spara presentationer

Metoden Presentation.Save skriver dokumentet till en fil eller ström. Enumen SaveFormat specificerar utdataformatet. PPTX är det primära stödda utdataformatet.

using var pres = new Presentation();
// ... build slides ...

// Save to a file
pres.Save("output.pptx", SaveFormat.Pptx);

// Save to a stream
using var ms = new MemoryStream();
pres.Save(ms, SaveFormat.Pptx);

// Save specific slides by index
pres.Save("subset.pptx", new[] { 1, 3 }, SaveFormat.Pptx);

Du kan också skicka ett SaveOptions-objekt för ytterligare kontroll över utdata.


Snabbstart

Installera paketet via .NET CLI:

dotnet add package aspose.slides.foss

Skapa och spara sedan en minimal presentation:

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

// 1. Create a new presentation
using var pres = new Presentation();

// 2. Get the default slide
var slide = pres.Slides[0];

// 3. Add a title shape
var title = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 30, 600, 60);
title.TextFrame.Text = "Quarterly Report";

// 4. Add a content shape
var body = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 120, 600, 300);
var para = new Paragraph();
para.Portions.Add(new Portion("Revenue grew 12% year-over-year."));
body.TextFrame.Paragraphs.Add(para);

// 5. Save as PPTX
pres.Save("quarterly-report.pptx", SaveFormat.Pptx);

Stödda format

FormatFiländelseLäsSkriv
PPTX.pptxJaJa
PPSX.ppsxNejJa
PPTM.pptmNejJa
POTX.potxNejJa
ODP.odpNejJa
FODP.fodpNejJa

Obs: Biblioteket läser och skriver PPTX nativt. Andra format som listas i SaveFormat‑enum deklareras på API‑nivå; den faktiska exportprecisionen kan variera. Det äldre .ppt‑binära formatet stöds inte.


Öppen källkod & licensiering

Aspose.Slides FOSS för .NET är släppt under MIT-licensen. Den fullständiga källkoden finns tillgänglig på GitHub. Du kan använda den i kommersiella och öppna källkodsprojekt, modifiera koden och distribuera den utan restriktioner. Ingen API-nyckel, licensfil eller registrering krävs.


Komma igång