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àginaExtensióLlegeix.Escriure
PPTX.pptxSí, sí.Sí, sí.
PPSX.ppsxNo, no ho sé.Planificat
PPTM.pptmNo, no ho sé.Planificat
POTX.potxNo, no ho sé.Planificat
ODP.odpNo, no ho sé.Planificat
FODP.fodpNo, 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. SaveFormat enum 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 .ppt no 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