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

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

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

Οδηγός βήμα προς βήμα

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

dotnet add package Aspose.Slides.Foss

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

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

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: Αποθήκευση με round‑trip

Αφού επιθεωρήσετε ή τροποποιήσετε την παρουσίαση, αποθηκεύστε την ξανά σε 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 (binary PowerPoint 97-2003) αρχεία δεν υποστηρίζονται.

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

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


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

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

Ναι. Τα άγνωστα τμήματα XML διατηρούνται ακριβώς κατά την αποθήκευση round‑trip. Η βιβλιοθήκη δεν θα αφαιρέσει κανένα 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}");

Δείτε επίσης

 Ελληνικά