Introducció
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 arxius des de zero, carregar els existents, manipular diapositives i formes, i guardar el resultat en disc – tot sense instal·lar Microsoft Office o cap dependència externa.
El Aspose.Slides.Foss El paquet NuGet està dirigit a .NET 9.0 i funciona de manera idèntica en Windows, macOS, Linux i Docker. Es publica sota la llicència MIT, per tal que puguis utilitzar-lo en projectes comercials i de codi obert sense restriccions.
Aquest post fa un recorregut a través de les capacitats bàsiques de gestió de presentacions: treballar amb diapositives, construir jerarquies de formes, organitzar text, gestionar taules i guardar en PPTX.
Què inclou?
Creació i càrrega de presentacions
El Presentation classe és el punt d’entrada per a cada operació. Pots crear una presentació buida, carregar-ne un des d"una ruta de fitxer o llegir-lo des del flux. La classe implementa IDisposable, així que envoltar-lo en un using La declaració assegura que els recursos es liberin correctament.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
El Presentation object exposa la jerarquia completa de diapositives a través de propietats com ara: Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images, i NotesSize.
Treballar amb diapositives
El SlideCollection retornada per: Presentation.Slides Podeu clonar una diapositiva dins de la mateixa presentació o entre les presentacions mentre conserveu o refa un mapa dels dissenys.
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;
Cada un. Slide exposicions SlideNumber, Hidden, LayoutSlide, NotesSlideManager, i Name.Podeu iterar la col·lecció amb: foreach o convertir-lo en una matriu amb: ToArray().
Formes i AutoFormes
Cada diapositiva conté un ShapeCollection accessibles a través de: Slide.Shapes.La col·lecció proporciona mètodes de fabrica per als tipus de formes més comuns.
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();
El AddAutoShape i de la InsertAutoShape Els mètodes accepten una ShapeType valor enum més coordenades de posició i mida. AddConnector, InsertConnector, AddPictureFrame, i InsertPictureFrame seguint el mateix patró.
Text: Paràgrafs i parts
El text en una presentació viu dins d’un TextFrame, que conté un ParagraphCollection.Cada un . Paragraph té una PortionCollection de Portion objectes que representen textos individuals executats amb formatatge 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);
Cada un. Portion té una PortionFormat propietat per controlar font, mida, negrita/itàlica, color, sublinia i altres atributs de nivell de caràcters. ParagraphFormat controla l’alineació, el estil de la bala, l"espaci i la penetració.
Taules
Les taules s’afegeixen a través de: ShapeCollection.AddTable, que accepta amplors de columnes i altures de filas com a matrius. El retorn Table l’objecte proporciona accés a Rows, Columns, i individualment Cell objectes.
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;
Salvar presentacions
El Presentation.Save El mètode escriu el document en un fitxer o flux. SaveFormat enum especifica el format de sortida. PPTX és el principal format d’aportació de la sortides.
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);
També pots passar un SaveOptions objecte per a un control addicional sobre la sortida.
Inici ràpid
Instal·lar el paquet a través de la CLI .NET:
dotnet add package aspose.slides.foss
Després crea i guarda una presentació mínima:
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);
Formats suportats
| Format de la pàgina | Extensió | Llegeix. | Escriure |
|---|---|---|---|
| PPTX | .pptx | Sí, sí. | Sí, sí. |
| PPSX | .ppsx | No, no ho sé. | Planificat |
| PPTM | .pptm | No, no ho sé. | Planificat |
| POTX | .potx | No, no ho sé. | Planificat |
| ODP | .odp | No, no ho sé. | Planificat |
| FODP | .fodp | No, no ho sé. | Planificat |
Nota: Actualment només s’implementa l’exportació PPTX. Existen altres valors de format en el sistema d’impressió i la seva configuració a través del programa de codi.
SaveFormatenum per a la compatibilitat amb l’avantguarda, però encara no són funcionals.Save()El mètode sempre produeix sortida PPTX independentment del paràmetre de format. Legacy.pptno es dóna suport al format binari.
Fonte oberta i llicències
Aspose.Slides FOSS for .NET is released under the MIT license. The full source code is available on GitHub.No es requereix clau API, fitxer de llicència o registre.
Com començar a treballar
- Guia de desenvolupadors: Docs.aspose.org/slides/net/ – tutorials i documentació conceptual.
- Base de coneixement: kb.aspose.org/slides/net/ – FAQs i articles de com fer.
- Referència a l’API: referència.aspose.org/slides/net/ – referència completa de classe i mètode.