Πώς να αποθηκεύσετε παρουσιάσεις σε .NET
Το Aspose.Slides FOSS για .NET αποθηκεύει τις παρουσιάσεις αποκλειστικά σε μορφή .pptx χρησιμοποιώντας prs.Save(path, SaveFormat.Pptx). Αυτός ο οδηγός καλύπτει το σωστό πρότυπο αποθήκευσης, την αποθήκευση σε διαφορετική διαδρομή, την αποθήκευση σε ροή και τα κοινά σφάλματα που σχετίζονται με την αποθήκευση.
Οδηγός βήμα προς βήμα
Βήμα 1: Εγκατάσταση του πακέτου
dotnet add package Aspose.Slides.FossΒήμα 2: Άνοιγμα ή δημιουργία παρουσίασης
Πάντα χρησιμοποιήστε μια δήλωση using. Η κλήση αποθήκευσης πρέπει να γίνει πριν από την καταστροφή του αντικειμένου.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
// Create new
using var prs = new Presentation();
prs.Save("new.pptx", SaveFormat.Pptx);// Open existing
using var prs = new Presentation("input.pptx");
prs.Save("output.pptx", SaveFormat.Pptx);Βήμα 3: Αποθήκευση μετά από όλες τις τροποποιήσεις
Τοποθετήστε την κλήση Save() μετά την ολοκλήρωση όλων των τροποποιήσεων, πριν λήξει το πεδίο using.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
shape.AddTextFrame("Hello, World!");
prs.Save("output.pptx", SaveFormat.Pptx);Βήμα 4: Αποθήκευση σε διαφορετική διαδρομή
Δώστε διαφορετική διαδρομή εξόδου για να δημιουργήσετε νέο αρχείο χωρίς να τροποποιήσετε το αρχικό:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);Το αρχείο template.pptx δεν τροποποιείται· customized.pptx δημιουργείται (ή αντικαθίσταται εάν υπάρχει ήδη).
Βήμα 5: Αποθήκευση σε ροή
Η μέθοδος Presentation.Save δέχεται επίσης ένα Stream:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
using var stream = new MemoryStream();
prs.Save(stream, SaveFormat.Pptx);
byte[] pptxBytes = stream.ToArray();
Console.WriteLine($"Size: {pptxBytes.Length} bytes");Βήμα 6: Επαλήθευση του Αποτελέσματος
Αφού αποθηκεύσετε σε ένα αρχείο, ελέγξτε ότι υπάρχει:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");Υποστηριζόμενη μορφή αποθήκευσης
| Μορφή | Τιμή Enum | Υποστηρίζεται |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | Ναι |
| N/A | Όχι | |
| HTML | N/A | Όχι |
| SVG | N/A | Όχι |
| PNG / JPEG | N/A | Όχι |
| ODP (OpenDocument) | N/A | Όχι |
Μόνο το PPTX υποστηρίζεται. Η παράμετρος format αυτή τη στιγμή αγνοείται· όλες οι παρουσιάσεις αποθηκεύονται ως PPTX ανεξάρτητα από το καθορισμένο SaveFormat.
Κοινά προβλήματα και διορθώσεις
IOException: The process cannot access the file
Το αρχείο εξόδου είναι ανοιχτό σε άλλη εφαρμογή (π.χ., το PowerPoint έχει το αρχείο ανοιχτό). Κλείστε το αρχείο σε άλλες εφαρμογές πριν αποθηκεύσετε.
Το αρχείο δημιουργείται αλλά φαίνεται κενό ή κατεστραμμένο
Βεβαιωθείτε ότι το prs.Save() καλείται πριν από την απελευθέρωση του αντικειμένου. Μετά την εκτέλεση του Dispose(), οι επόμενες κλήσεις θα αποτύχουν ή θα παράγουν κατεστραμμένο αποτέλεσμα.
Απρόσμενη μορφή εξόδου κατά την αποθήκευση
Η μεταβίβαση οποιασδήποτε τιμής SaveFormat εκτός από SaveFormat.Pptx δεν προκαλεί εξαίρεση — η παράμετρος μορφής αγνοείται σιωπηρά και το αρχείο αποθηκεύεται πάντα ως PPTX. Δεν υπάρχει NotSupportedException για μη αναγνωρισμένη τιμή μορφής.
Συχνές Ερωτήσεις
Μπορώ να αποθηκεύσω στο ίδιο αρχείο που άνοιξα;
Ναι. Η αποθήκευση στην ίδια διαδρομή αντικαθιστά το αρχικό αρχείο:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalΔιατηρεί η αποθήκευση το περιεχόμενο που δεν έχω τροποποιήσει;
Ναι. Τα άγνωστα τμήματα XML από το αρχικό αρχείο διατηρούνται ακριβώς όπως είναι. Η βιβλιοθήκη σειριοποιεί μόνο τα τμήματα του μοντέλου εγγράφου που καταλαβαίνει και περνάει διαμέσου οποιοδήποτε XML δεν αναγνωρίζει.