Увод
Aspose.Slides FOSS za .NET pruža sveobuhvatan skup klasa za upravljanje PowerPoint prezentacijama u potpunosti u C#. Biblioteka vam omogućava da kreirate nove .pptx fajlove od nule, učitate postojeće, manipulišete slajdovima i oblicima, i sačuvate rezultat nazad na disk – sve bez instaliranja Microsoft Office-a ili bilo koje spoljne zavisnosti.
Aspose.Slides.Foss NuGet paket cilja .NET 9.0 i radi identično na Windows, macOS, Linux i Docker kontejnerima. Objavljen je pod MIT licencom, tako da ga možete koristiti u komercijalnim i open‑source projektima bez ograničenja.
Ovaj post prolazi kroz osnovne mogućnosti upravljanja prezentacijom: rad sa slajdovima, izgradnja hijerarhija oblika, organizovanje teksta, upravljanje tabelama i čuvanje u PPTX.
Šta je uključeno
Kreiranje i učitavanje prezentacija
Klasa Presentation je ulazna tačka za svaku operaciju. Možete kreirati praznu prezentaciju, učitati je iz putanje fajla ili pročitati iz toka. Klasa implementira IDisposable, pa njeno umotavanje u using izjavu osigurava pravilno oslobađanje resursa.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
Objekat Presentation izlaže kompletnu hijerarhiju slajdova kroz svojstva kao što su Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images i NotesSize.
Rad sa Slides
SlideCollection koji se vraća od Presentation.Slides podržava dodavanje, kloniranje, umetanje, promenu redosleda i uklanjanje slajdova. Možete klonirati slajd unutar iste prezentacije ili između prezentacija, pri čemu se čuvaju ili premapiraju rasporedi.
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;
Svaki Slide izlaže SlideNumber, Hidden, LayoutSlide, NotesSlideManager i Name. Kolekciju možete iterirati pomoću foreach ili je pretvoriti u niz pomoću ToArray().
Oblici i AutoOblici
Svaki slajd sadrži ShapeCollection koji je dostupan putem Slide.Shapes. Kolekcija pruža fabričke metode za najčešće tipove oblika.
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();
Metode AddAutoShape i InsertAutoShape prihvataju ShapeType enum vrednost plus koordinate položaja i veličine. AddConnector, InsertConnector, AddPictureFrame i InsertPictureFrame prate isti obrazac.
Текст: Параграфи и Делови
Tekst u prezentaciji nalazi se unutar TextFrame, koji sadrži ParagraphCollection. Svaki Paragraph drži PortionCollection od Portion objekata koji predstavljaju pojedinačne tekstualne segmente sa nezavisnim formatiranjem.
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);
Svaki Portion ima PortionFormat svojstvo za kontrolu fonta, veličine, podebljanog/kurziva, boje, podvlačenja i drugih atributa na nivou karaktera. ParagraphFormat kontroliše poravnanje, stil nabrajanja, razmake i uvlačenje.
Табеле
Табеле се додају преко ShapeCollection.AddTable, који прихвата ширине колона и висине редова као низове. Враћени Table објекат пружа приступ Rows, Columns и појединачним Cell објектима.
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;
Čuvanje prezentacija
Metod Presentation.Save zapisuje dokument u fajl ili tok. Enum SaveFormat određuje izlazni format. PPTX je primarni podržani izlazni format.
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);
Takođe možete proslediti SaveOptions objekat za dodatnu kontrolu nad izlazom.
Brzi početak
Instalirajte paket putem .NET CLI:
dotnet add package aspose.slides.foss
Zatim kreirajte i sačuvajte minimalnu prezentaciju:
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);
Подржани формати
| Format | Ekstenzija | Čitanje | Pisanje |
|---|---|---|---|
| PPTX | .pptx | Da | Da |
| PPSX | .ppsx | Ne | Da |
| PPTM | .pptm | Ne | Da |
| POTX | .potx | Ne | Da |
| ODP | .odp | Ne | Da |
| FODP | .fodp | Ne | Da |
Napomena: Biblioteka čita i piše PPTX nativno. Ostali formati navedeni u
SaveFormatenumeraciji su deklarisani na nivou API‑ja; stvarna vernost izvoza može varirati. Legacy.pptbinarni format nije podržan.
Отворени извор и лиценцирање
Aspose.Slides FOSS za .NET je objavljen pod MIT licencom. Potpuni izvorni kod je dostupan na GitHub. Možete ga koristiti u komercijalnim i open‑source projektima, izmeniti kod i redistribuirati ga bez ograničenja. Nije potreban API ključ, licencni fajl ili registracija.
Početak
- Vodič za programere: docs.aspose.org/slides/net/ – tutorijali i konceptualna dokumentacija.
- Baza znanja: kb.aspose.org/slides/net/ – FAQ i praktični članci.
- API referenca: reference.aspose.org/slides/net/ – potpuna referenca klasa i metoda.