Πώς να δημιουργήσετε παρουσιάσεις σε .NET
Το Aspose.Slides FOSS για .NET σάς επιτρέπει να δημιουργείτε παρουσιάσεις PowerPoint εξ ολοκλήρου σε C# χωρίς εξάρτηση από το Microsoft Office. Αυτός ο οδηγός δείχνει πώς να δημιουργήσετε μια νέα παρουσίαση, να προσθέσετε διαφάνειες και σχήματα, να μορφοποιήσετε κείμενο και να αποθηκεύσετε το αποτέλεσμα.
Οδηγός βήμα προς βήμα
Βήμα 1: Εγκατάσταση του πακέτου
Εγκαταστήστε το Aspose.Slides FOSS από το NuGet. Απαιτείται .NET 9.0 ή νεότερη έκδοση.
dotnet add package Aspose.Slides.FossΕπαληθεύστε την εγκατάσταση:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");Δεν απαιτούνται άλλα πακέτα συστήματος.
Βήμα 2: Εισαγωγή των Απαιτούμενων Χώρων Ονομάτων
Προσθέστε τους χώρους ονομάτων που απαιτούνται για τη δημιουργία και αποθήκευση παρουσιάσεων.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;Όλες οι σταθερές τύπου σχήματος βρίσκονται στο Aspose.Slides.Foss.ShapeType. Όλοι οι τύποι μορφοποίησης (FillType, NullableBool) είναι επίσης στο Aspose.Slides.Foss.
Βήμα 3: Δημιουργία παρουσίασης
Χρησιμοποιήστε new Presentation() με μια δήλωση using. Μια νέα παρουσίαση ξεκινά με μία κενή διαφάνεια.
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);Σημαντικό: Πάντα χρησιμοποιήστε Presentation με μια δήλωση using. Η κλάση υλοποιεί IDisposable και οι πόροι δεν θα απελευθερωθούν σωστά χωρίς αυτό.
Βήμα 4: Πρόσβαση σε μια διαφάνεια
Η πρώτη διαφάνεια βρίσκεται στο δείκτη 0. Μια κενή παρουσίαση έχει ακριβώς μία διαφάνεια.
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);Βήμα 5: Προσθήκη σχήματος
Χρησιμοποιήστε slide.Shapes.AddAutoShape() για να προσθέσετε ένα AutoShape. Οι παράμετροι είναι (shapeType, x, y, width, height) όλα σε μονάδες σημείου (1 σημείο = 1/72 ίντσα· το τυπικό slide είναι 720 × 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);Βήμα 6: Αποθήκευση της Παρουσίασης
Καλέστε prs.Save(path, SaveFormat.Pptx) πριν το αντικείμενο διαγραφεί. Το PPTX είναι η μόνη υποστηριζόμενη μορφή εξόδου.
prs.Save("result.pptx", SaveFormat.Pptx);Το αρχείο γράφεται ατομικά· εάν προκύψει σφάλμα πριν από αυτήν την κλήση, δεν δημιουργείται αρχείο εξόδου.
Πλήρες Λειτουργικό Παράδειγμα
Το παρακάτω πρόγραμμα δημιουργεί μια παρουσίαση δύο διαφανειών με ένα σχήμα τίτλου στην πρώτη διαφάνεια και έναν πίνακα στη δεύτερη.
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");Κοινά προβλήματα και διορθώσεις
ObjectDisposedException
Χρησιμοποιείτε το αντικείμενο Presentation μετά το μπλοκ using έχει λήξει. Όλη η εργασία πρέπει να γίνει πριν το αντικείμενο διαγραφεί.
Σφάλμα έλλειψης namespace για ShapeType
Βεβαιωθείτε ότι έχετε using Aspose.Slides.Foss; στην κορυφή του αρχείου σας. ShapeType, NullableBool, FillType και άλλα enums βρίσκονται σε αυτό το namespace.
SaveFormat εκτός από Pptx
Η μεταβίβαση οποιασδήποτε τιμής SaveFormat εκτός από SaveFormat.Pptx δεν προκαλεί εξαίρεση. Η παράμετρος format αγνοείται σιωπηρά και το PPTX παράγεται πάντα. Πάντα χρησιμοποιήστε SaveFormat.Pptx για να είστε σαφείς.
Συχνές Ερωτήσεις
Ποιο είναι το προεπιλεγμένο μέγεθος διαφάνειας;
Ένα νέο Presentation() δημιουργεί διαφάνειες στο τυπικό μέγεθος 10 x 7,5 ίντσες (720 x 540 σημεία). Η αλλαγή του μεγέθους της διαφάνειας δεν υποστηρίζεται ακόμη σε αυτήν την έκδοση.
Μπορώ να προσθέσω περισσότερες από μία διαφάνειες;
Ναι. Καλέστε prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) για να προσθέσετε μια κενή διαφάνεια και να την προσπελάσετε με δείκτη:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];Μπορώ να ανοίξω ένα υπάρχον αρχείο και να προσθέσω διαφάνειες;
Ναι:
using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);Σε ποιες μορφές μπορώ να αποθηκεύσω;
Μόνο SaveFormat.Pptx υποστηρίζεται. Η εξαγωγή σε PDF, HTML, SVG ή εικόνες δεν είναι διαθέσιμη σε αυτήν την έκδοση.