Πώς να φορτώσετε παρουσιάσεις στο Python
Aspose.Slides FOSS for Python lets you open any .pptx αρχείο, ελέγξτε το περιεχόμενό του και είτε αποθηκεύστε το ξανά σε PPTX είτε εξάγετε δεδομένα από αυτό. Αυτός ο οδηγός καλύπτει το άνοιγμα ενός αρχείου, την επανάληψη των διαφανειών, την ανάγνωση κειμένου σχήματος και την αποθήκευση με επαναφορά.
Οδηγός βήμα προς βήμα
Βήμα 1: Εγκατάσταση του πακέτου
pip install aspose-slides-fossΒήμα 2: Άνοιγμα υπάρχουσας παρουσίασης
Περνάτε τη διαδρομή του αρχείου στο slides.Presentation(). Χρησιμοποιήστε τον διαχειριστή περιβάλλοντος για να εξασφαλίσετε τον καθαρισμό.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation("input.pptx") as prs:
print(f"Slide count: {len(prs.slides)}")
prs.save("output.pptx", SaveFormat.PPTX)Άγνωστα τμήματα XML στο αρχείο προέλευσης διατηρούνται ακριβώς όπως είναι: η βιβλιοθήκη δεν αφαιρεί ποτέ περιεχόμενο που δεν έχει ακόμη κατανοήσει.
Βήμα 3: Επιθεώρηση διαφανειών
Επαναλάβετε πάνω σε όλες τις διαφάνειες και εκτυπώστε τον δείκτη τους:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for i, slide in enumerate(prs.slides):
shape_count = len(slide.shapes)
print(f"Slide {i}: {shape_count} shapes")Βήμα 4: Ανάγνωση κειμένου σχήματος
Επανάληψη πάνω στα σχήματα και ανάγνωση κειμένου από σχήματα που έχουν ένα TextFrame:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text_frame") and shape.text_frame is not None:
text = shape.text_frame.text
if text.strip():
print(f" Shape text: {text!r}")Βήμα 5: Ανάγνωση ιδιοτήτων εγγράφου
Πρόσβαση στις βασικές ιδιότητες του εγγράφου από prs.document_properties:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
props = prs.document_properties
print(f"Title: {props.title}")
print(f"Author: {props.author}")
print(f"Subject: {props.subject}")Βήμα 6: Αποθήκευση με round‑trip
Αφού επιθεωρήσετε ή τροποποιήσετε την παρουσίαση, αποθηκεύστε την ξανά σε PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Η αποθήκευση σε διαφορετική διαδρομή δημιουργεί νέο αρχείο. Η αποθήκευση στην ίδια διαδρομή αντικαθιστά το αρχικό.
Κοινά προβλήματα και διορθώσεις
FileNotFoundError
Ελέγξτε ότι η διαδρομή προς το .pptx αρχείο είναι σωστή σε σχέση με τον τρέχοντα φάκελο εργασίας. Χρησιμοποιήστε pathlib.Path για αξιόπιστη κατασκευή διαδρομών:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
Η βιβλιοθήκη υποστηρίζει .pptx (Office Open XML) μόνο. Η παλαιότερη .ppt (binary PowerPoint 97–2003) αρχεία δεν υποστηρίζονται.
Τα σχήματα δεν έχουν το χαρακτηριστικό text_frame
Ορισμένα σχήματα (Connectors, PictureFrames, GroupShapes) δεν έχουν ένα text_frame. Προστατέψτε με hasattr(shape, "text_frame") and shape.text_frame is not None πριν την πρόσβαση στο κείμενο.
Συχνές Ερωτήσεις
Διατηρεί η φόρτωση όλο το αρχικό περιεχόμενο;?
Ναι. Τα άγνωστα τμήματα XML διατηρούνται ακριβώς κατά την αποθήκευση round‑trip. Η βιβλιοθήκη δεν θα αφαιρέσει κανένα XML περιεχόμενο που δεν καταλαβαίνει ακόμη.
Μπορώ να φορτώσω ένα PPTX με προστασία κωδικού;?
Οι παρουσιάσεις με προστασία κωδικού (κρυπτογραφημένες) δεν υποστηρίζονται σε αυτήν την έκδοση.
Μπορώ να εξάγω ενσωματωμένες εικόνες;?
Πρόσβαση στη συλλογή εικόνων: prs.images επιστρέφει το ImageCollection. Κάθε εικόνα έχει ένα content_type και ένα bytes ιδιότητα για την ανάγνωση των ακατέργαστων δεδομένων εικόνας.
Υποστηρίζεται η φόρτωση από ροή στη μνήμη;?
Φόρτωση απευθείας από io.BytesIO δεν εκτίθεται στο τρέχον API. Γράψτε τα bytes σε ένα προσωρινό αρχείο πρώτα:
import tempfile, os
import aspose.slides_foss as slides
with tempfile.NamedTemporaryFile(suffix=".pptx", delete=False) as tmp:
tmp.write(pptx_bytes)
tmp_path = tmp.name
try:
with slides.Presentation(tmp_path) as prs:
print(f"Slides: {len(prs.slides)}")
finally:
os.unlink(tmp_path)