Com crear presentacions a .NET
Aspose.Slides FOSS for .NET us permet crear presentacions PowerPoint completament en C# sense cap dependència de Microsoft Office. Aquesta guia mostra com crear una nova presentació, afegir diapositives i formes, formatar text i desar el resultat.
Guia pas a pas
Pas 1: Instal·la el paquet
Instal·la Aspose.Slides FOSS des de NuGet. Es requereix .NET 9.0 o posterior.
dotnet add package Aspose.Slides.FossVerifiqueu la instal·lació:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");No es requereixen altres paquets del sistema.
Pas 2: Importa els espais de noms necessaris
Afegeix els espais de noms necessaris per crear i desar presentacions.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;Totes les constants de tipus de forma es troben a Aspose.Slides.Foss.ShapeType. Tots els tipus de format (FillType, NullableBool) també es troben a Aspose.Slides.Foss.
Pas 3: Crea una presentació
Utilitzeu new Presentation() amb una declaració using. Una nova presentació comença amb una diapositiva en blanc.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
Console.WriteLine($"Slides in new presentation: {prs.Slides.Count}");
// work with prs
prs.Save("output.pptx", SaveFormat.Pptx);Important: Utilitzeu sempre Presentation amb una declaració using. La classe implementa IDisposable i els recursos no es liberaran correctament sense això.
Pas 4: Accedir a una diapositiva
La primera diapositiva està a l’índex 0. Una presentació en blanc té exactament una diapositiva.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0]; // zero-based index
Console.WriteLine($"Slide at index 0: {slide}");
prs.Save("output.pptx", SaveFormat.Pptx);Pas 5: Afegeix una forma
Utilitzeu slide.Shapes.AddAutoShape() per afegir una AutoShape. Els paràmetres són (shapeType, x, y, width, height) tots en punts (1 punt = 1/72 polzada; la diapositiva estàndard és de 720 x 540 pt).
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
// Rectangle at (50, 50) with 400 wide and 120 tall
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 120);
// Attach a text frame
shape.AddTextFrame("Hello from Aspose.Slides FOSS!");
prs.Save("with-shape.pptx", SaveFormat.Pptx);Pas 6: Desa la presentació
Crida prs.Save(path, SaveFormat.Pptx) abans que l’objecte sigui alliberat. PPTX és l’únic format de sortida compatible.
prs.Save("result.pptx", SaveFormat.Pptx);El fitxer s’escriu de manera atòmica; si es produeix un error abans d’aquesta crida, no es crea cap fitxer de sortida.
Exemple complet de funcionament
El programa següent crea una presentació de dues diapositives amb una forma de títol a la primera diapositiva i una taula a la segona.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
// --- Slide 1: title shape ---
var slide1 = prs.Slides[0];
var title = slide1.Shapes.AddAutoShape(ShapeType.Rectangle, 40, 40, 640, 80);
var tf = title.AddTextFrame("Q1 Results: Executive Summary");
var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 32;
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);
// --- Slide 2: table ---
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];
var table = slide2.Shapes.AddTable(40, 40,
new double[] { 200.0, 120.0, 120.0 },
new double[] { 40.0, 40.0, 40.0 });
string[] headers = { "Region", "Revenue", "Growth" };
string[][] data = {
new[] { "North", "$1.2M", "+8%" },
new[] { "South", "$0.9M", "+4%" },
};
for (int col = 0; col < headers.Length; col++)
table.Rows[0][col].TextFrame.Text = headers[col];
for (int row = 0; row < data.Length; row++)
for (int col = 0; col < data[row].Length; col++)
table.Rows[row + 1][col].TextFrame.Text = data[row][col];
prs.Save("q1-results.pptx", SaveFormat.Pptx);
Console.WriteLine("Saved q1-results.pptx");Problemes comuns i solucions
ObjectDisposedException
Esteu utilitzant l’objecte Presentation després que el bloc using hagi finalitzat. Tota la feina ha de realitzar‑se abans que l’objecte sigui alliberat.
Error de namespace absent per a ShapeType
Assegureu‑vos que teniu using Aspose.Slides.Foss; a la part superior del vostre fitxer. ShapeType, NullableBool, FillType i altres enums es troben en aquest espai de noms.
SaveFormat excepte Pptx
Passar qualsevol valor SaveFormat diferent de SaveFormat.Pptx no llança cap excepció. El paràmetre de format s’ignora silenciosament i sempre es genera PPTX. Utilitzeu sempre SaveFormat.Pptx per ser explícits.
Preguntes freqüents
Quina és la mida per defecte de la diapositiva?
Un nou Presentation() crea diapositives a la mida estàndard de 10 x 7,5 polzades (720 x 540 punts). Canviar la mida de la diapositiva encara no està suportat en aquesta edició.
Puc afegir més d’una diapositiva?
Sí. Crida prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) per afegir una diapositiva en blanc i accedir-hi per índex:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];Puc obrir un fitxer existent i afegir diapositives?
Sí:
using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);Quins formats puc desar?
Només SaveFormat.Pptx és compatible. L’exportació a PDF, HTML, SVG o imatges no està disponible en aquesta edició.