Introducere
Aspose.Slides FOSS for .NET provides a comprehensive set of classes for managing PowerPoint presentations entirely in C#. The library lets you create new .pptx fișiere de la zero, încărcați cele existente, manipulați diapozitive și forme și salvați rezultatul înapoi pe disc – toate fără a instala Microsoft Office sau orice dependență externă.
În ceea ce priveşte Aspose.Slides.Foss NuGet este un pachet care vizează .NET 9.0 și rulează identic pe Windows, macOS, Linux și containerele Docker. Este eliberat sub licența MIT, astfel încât să-l puteți utiliza în proiecte comerciale și open source fără restricții.
Acest articol se referă la capacitățile de bază ale gestionării prezentărilor: lucrul cu diapozitive, construirea ierarhiilor formelor, organizarea textului, administrarea tabelurilor și salvarea în PPTX.
Ce înseamnă?
Crearea și încărcarea prezentărilor
În ceea ce priveşte Presentation clasa este punctul de intrare pentru fiecare operațiune. Puteți crea o prezentare goală, încărca una dintr-o cale de fișier sau citi din un flux. Clasa implementează IDisposable, aşa că împachetându-l într-un using Declaraţia asigură eliberarea corespunzătoare a resurselor.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
În ceea ce priveşte Presentation Obiectul expune ierarhia completă a diapozitivelor prin proprietăţi cum ar fi: Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images, și NotesSize.
Lucrarea cu diapozitive
În ceea ce priveşte SlideCollection returnată de: Presentation.Slides Suportă adăugarea, clonarea și eliminarea diapozitivelor. Puteți clona o diapositivă în cadrul aceleiași prezentări sau între alte prezentari păstrând sau redesenzând layout-urile.
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;
Fiecare Slide expuneri SlideNumber, Hidden, LayoutSlide, NotesSlideManager, și Name.Poţi să repeti colecţia cu: foreach sau să o converti într-o matrice cu: ToArray().
Forme și AutoForme
Fiecare diapozitiv conţine un ShapeCollection accesibil prin intermediul: Slide.Shapes.Colecția oferă metode de fabricație pentru cele mai comune tipuri de forme.
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();
În ceea ce priveşte AddAutoShape și de: InsertAutoShape metodele acceptă o ShapeType valoarea enum plus coordonatele de poziţie şi dimensiune. AddConnector, InsertConnector, AddPictureFrame, și InsertPictureFrame Urmează acelaşi model.
Text: Paragrafe și părți
Textul într-o prezentare trăiește în interiorul unui TextFrame, care conţine un ParagraphCollection.Fiecare . Paragraph deţine o PortionCollection din: Portion Obiecte care reprezintă un text individual rulează cu formatare independentă.
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);
Fiecare Portion are o PortionFormat proprietatea de control al fontului, mărimii, scrisului în gras/italică, culorii, subliniazării și altor atribute la nivelul caracterelor. ParagraphFormat controlează alinierea, stilul glonțului, spațierea și indentarea.
Tabelul 1
Tablele sunt adăugate prin: ShapeCollection.AddTable, care acceptă lățimi de coloană și înălțime a rândurilor ca matrice. Table Obiectul oferă acces la: Rows, Columns, şi individuală . Cell Obiecte.
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;
Salvarea prezentărilor
În ceea ce priveşte Presentation.Save metoda scrie documentul într-un fișier sau flux. SaveFormat enum specifică formatul de ieșire. PPTX este principalul format suportat pentru ieşire .
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);
Puteţi, de asemenea, să treceţi o SaveOptions obiect pentru control suplimentar asupra producției.
Început rapid
Instalați pachetul prin intermediul .NET CLI:
dotnet add package aspose.slides.foss
Apoi creați și salvați o prezentare minimă:
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);
Formatele suportate
| Formatul | Extindere | Citeşte. | Scrie . |
|---|---|---|---|
| PPTX | .pptx | Da, sunt. | Da, sunt. |
| PPSX | .ppsx | Nu, nu. | Planificată |
| PPTM | .pptm | Nu, nu. | Planificată |
| POTX | .potx | Nu, nu. | Planificată |
| ODP | .odp | Nu, nu. | Planificată |
| FODP | .fodp | Nu, nu. | Planificată |
Notă: În prezent, este implementată doar exportul PPTX. Există alte valori de format în sistemele de date ale PCP și PSD.
SaveFormatÎn plus, în cazul în care un sistem de securitate este disponibil pentru compatibilitate cu viitorul, nu există încă o soluţie funcţională.Save()metoda produce întotdeauna ieșire PPTX indiferent de parametrul formatului. Legacy.pptformatul binar nu este suportat.
Open Source & Licențiere
Aspose.Slides FOSS for .NET is released under the MIT license. The full source code is available on GitHub. Puteți folosi în proiecte comerciale și open-source, modificați codul și redistribuiți fără restricții. Nu este necesară nicio cheie API, fișier de licență sau înregistrare.
Cum să începem?
- Ghidul dezvoltatorilor: Docs.aspose.org/slides/net/ – tutoriale și documentație conceptuală.
- Baza de cunoştinţe: kb.aspose.org/slides/net/ - FAQ-uri şi articole cu instrucţiuni.
- Referință API: referință.aspose.org/slides/net/ – referință completă la clasă și metodă.