Come creare presentazioni in .NET
Aspose.Slides FOSS per .NET ti consente di creare presentazioni PowerPoint interamente in C# senza dipendere da Microsoft Office. Questa guida mostra come creare una nuova presentazione, aggiungere diapositive e forme, formattare il testo e salvare il risultato.
Guida passo-passo
Passo 1: Installa il pacchetto
Installa Aspose.Slides FOSS da NuGet. È necessario .NET 9.0 o versioni successive.
dotnet add package Aspose.Slides.FossVerifica l’installazione:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");Non sono richiesti altri pacchetti di sistema.
Passo 2: Importare gli spazi dei nomi necessari
Aggiungi i namespace necessari per creare e salvare le presentazioni.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;Tutte le costanti di tipo forma si trovano in Aspose.Slides.Foss.ShapeType. Tutti i tipi di formattazione (FillType, NullableBool) sono anch’essi in Aspose.Slides.Foss.
Passo 3: Crea una presentazione
Usa new Presentation() con una dichiarazione using. Una nuova presentazione inizia con una diapositiva vuota.
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);Importante: Utilizzare sempre Presentation con una dichiarazione using. La classe implementa IDisposable e le risorse non verranno rilasciate correttamente senza di essa.
Passo 4: Accedi a una diapositiva
La prima diapositiva è all’indice 0. Una presentazione vuota ha esattamente 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);Passo 5: Aggiungi una forma
Usa slide.Shapes.AddAutoShape() per aggiungere un’AutoShape. I parametri sono (shapeType, x, y, width, height) tutti in punti (1 punto = 1/72 di pollice; la diapositiva standard è 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);Passo 6: Salva la presentazione
Chiama prs.Save(path, SaveFormat.Pptx) prima che l’oggetto venga eliminato. PPTX è l’unico formato di output supportato.
prs.Save("result.pptx", SaveFormat.Pptx);Il file viene scritto in modo atomico; se si verifica un errore prima di questa chiamata, non viene creato alcun file di output.
Esempio completo funzionante
Il programma seguente crea una presentazione di due diapositive con una forma titolo nella prima diapositiva e una tabella nella seconda.
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");Problemi comuni e soluzioni
ObjectDisposedException
Stai usando l’oggetto Presentation dopo che il blocco using è terminato. Tutto il lavoro deve avvenire prima che l’oggetto venga eliminato.
Errore di namespace mancante per ShapeType
Assicurati di avere using Aspose.Slides.Foss; in cima al tuo file. ShapeType, NullableBool, FillType e altri enum sono in questo namespace.
SaveFormat tranne Pptx
Passare qualsiasi valore SaveFormat diverso da SaveFormat.Pptx non genera un’eccezione. Il parametro format viene silenziosamente ignorato e viene sempre prodotto un PPTX. Usa sempre SaveFormat.Pptx per essere esplicito.
Domande Frequenti
Qual è la dimensione predefinita della diapositiva?
Un nuovo Presentation() crea diapositive nella dimensione standard di 10 × 7,5 pollici (720 × 540 punti). La modifica della dimensione della diapositiva non è ancora supportata in questa edizione.
Posso aggiungere più di una diapositiva?
Sì. Chiama prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) per aggiungere una diapositiva vuota e accedervi per indice:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];Posso aprire un file esistente e aggiungere diapositive?
Sì:
using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);In quali formati posso salvare?
È supportato solo SaveFormat.Pptx. L’esportazione in PDF, HTML, SVG o immagini non è disponibile in questa edizione.