Πώς να φορτώσετε παρουσιάσεις στο .NET

Πώς να φορτώσετε παρουσιάσεις στο .NET

Το Aspose.Slides FOSS for .NET σάς επιτρέπει να ανοίξετε οποιοδήποτε αρχείο .pptx, να ελέγξετε το περιεχόμενό του και είτε να το αποθηκεύσετε ξανά σε PPTX είτε να εξάγετε δεδομένα από αυτό. Αυτός ο οδηγός καλύπτει το άνοιγμα ενός αρχείου, την επανάληψη των διαφανειών, την ανάγνωση κειμένου σχήματος και την αποθήκευση με επαναφορά.

Οδηγός βήμα-βήμα

Βήμα 1: Εγκατάσταση του πακέτου

dotnet add package Aspose.Slides.Foss

Βήμα 2: Άνοιγμα υπάρχουσας παρουσίασης

Περάστε τη διαδρομή του αρχείου στο new Presentation(). Χρησιμοποιήστε μια δήλωση using για να εξασφαλίσετε τον καθαρισμό.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation("input.pptx");
Console.WriteLine($"Slide count: {prs.Slides.Count}");
prs.Save("output.pptx", SaveFormat.Pptx);

Άγνωστα τμήματα XML στο αρχείο προέλευσης διατηρούνται ακριβώς όπως είναι: η βιβλιοθήκη δεν αφαιρεί ποτέ περιεχόμενο που δεν έχει ακόμη καταλάβει.


Βήμα 3: Επιθεώρηση διαφανειών

Επανάληψη σε όλες τις διαφάνειες και εκτύπωση του δείκτη τους:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
for (int i = 0; i < prs.Slides.Count; i++)
{
    var slide = prs.Slides[i];
    int shapeCount = slide.Shapes.Count;
    Console.WriteLine($"Slide {i}: {shapeCount} shapes");
}

Βήμα 4: Ανάγνωση κειμένου σχήματος

Επανάληψη πάνω από σχήματα και ανάγνωση κειμένου από σχήματα που έχουν ένα TextFrame:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
foreach (var slide in prs.Slides)
{
    foreach (var shape in slide.Shapes)
    {
        if (shape is IAutoShape autoShape && autoShape.TextFrame != null)
        {
            string text = autoShape.TextFrame.Text;
            if (!string.IsNullOrWhiteSpace(text))
                Console.WriteLine($"  Shape text: {text}");
        }
    }
}

Βήμα 5: Ανάγνωση Ιδιοτήτων Εγγράφου

Πρόσβαση στις βασικές ιδιότητες του εγγράφου από prs.DocumentProperties:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
var props = prs.DocumentProperties;
Console.WriteLine($"Title:   {props.Title}");
Console.WriteLine($"Author:  {props.Author}");
Console.WriteLine($"Subject: {props.Subject}");

Βήμα 6: Αποθήκευση κυκλικής διαδρομής

Αφού ελέγξετε ή τροποποιήσετε την παρουσίαση, αποθηκεύστε την ξανά σε μορφή PPTX:

prs.Save("output.pptx", SaveFormat.Pptx);

Η αποθήκευση σε διαφορετική διαδρομή δημιουργεί ένα νέο αρχείο. Η αποθήκευση στην ίδια διαδρομή αντικαθιστά το αρχικό.


Κοινά Προβλήματα και Διορθώσεις

FileNotFoundException

Ελέγξτε ότι η διαδρομή προς το αρχείο .pptx είναι σωστή σε σχέση με τον τρέχοντα φάκελο εργασίας. Χρησιμοποιήστε το Path.Combine για αξιόπιστη κατασκευή διαδρομής:

string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);

Exception: File format is not supported

Η βιβλιοθήκη υποστηρίζει μόνο .pptx (Office Open XML). Τα παλαιά .ppt (δυαδικά PowerPoint 97-2003) αρχεία δεν υποστηρίζονται.

Τα σχήματα δεν έχουν ιδιότητα TextFrame

Ορισμένα σχήματα (Connector, PictureFrame) δεν έχουν TextFrame. Κάντε μετατροπή σε IAutoShape και ελέγξτε για null πριν αποκτήσετε πρόσβαση στο κείμενο.


Συχνές Ερωτήσεις

Η φόρτωση διατηρεί όλο το αρχικό περιεχόμενο;

Ναι. Τα άγνωστα τμήματα XML διατηρούνται ακριβώς όπως είναι κατά την αποθήκευση κυκλικής μετατροπής. Η βιβλιοθήκη δεν θα αφαιρέσει κανένα περιεχόμενο XML που δεν έχει ακόμη αναγνωρίσει.

Μπορώ να φορτώσω ένα PPTX με προστασία κωδικού πρόσβασης;

Οι παρουσιάσεις με κωδικό πρόσβασης (κρυπτογραφημένες) δεν υποστηρίζονται σε αυτήν την έκδοση.

Μπορώ να εξάγω ενσωματωμένες εικόνες;

Πρόσβαση στη συλλογή εικόνων: prs.Images επιστρέφει το ImageCollection. Κάθε εικόνα έχει ιδιότητες για ανάγνωση των ακατέργαστων δεδομένων εικόνας.

Υποστηρίζεται η φόρτωση από MemoryStream;

Ναι. Ο κατασκευαστής Presentation δέχεται ένα Stream:

using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");

Δείτε επίσης

 Ελληνικά