Συχνές Ερωτήσεις
Συχνές Ερωτήσεις
Πώς εγκαθιστώ το Aspose.Slides FOSS;
Εγκαταστήστε από το PyPI χρησιμοποιώντας pip. Απαιτείται Python 3.10 ή νεότερη.
pip install aspose-slides-fossΕπαληθεύστε την εγκατάσταση:
import aspose.slides_foss as slides
with slides.Presentation() as prs:
print(f"Slides: {len(prs.slides)}")Η εξάρτηση lxml εγκαθίσταται αυτόματα. Δεν απαιτείται το Microsoft Office ή άλλο runtime συστήματος.
Γιατί πρέπει να χρησιμοποιήσω with slides.Presentation() as prs:?
Η κλάση Presentation διαχειρίζεται εσωτερικά χειριστήρια αρχείων και πόρους XML. Χωρίς τον διαχειριστή περιβάλλοντος, αυτοί οι πόροι δεν απελευθερώνονται όταν το αντικείμενο Presentation βγαίνει εκτός εμβέλειας, κάτι που μπορεί να προκαλέσει διαρροές πόρων ή κλειδώματα αρχείων στα Windows.
Πάντα ακολουθήστε αυτό το μοτίβο:
with slides.Presentation("input.pptx") as prs:
# work here
prs.save("output.pptx", SaveFormat.PPTX)Σε ποιες μορφές αρχείων μπορώ να αποθηκεύσω;
Η enum SaveFormat ορίζει σταθερές για πολλές μορφές — PPTX, PDF, HTML, SVG, JPEG, PNG, και άλλες — για συμβατότητα API με την εμπορική έκδοση. Κατά την εκτέλεση σε αυτήν την έκδοση FOSS, όλες οι κλήσεις save() αγνοούν το όρισμα μορφής και πάντα γράφουν έξοδο PPTX. Η μεταβίβαση SaveFormat.PDF μεταγλωττίζεται και εκτελείται χωρίς σφάλμα, αλλά παράγει ένα αρχείο .pptx, όχι ένα .pdf.
from aspose.slides_foss.export import SaveFormat
prs.save("output.pptx", SaveFormat.PPTX)Η εξαγωγή σε μορφές εκτός του PPTX δεν είναι λειτουργικά διαθέσιμη σε αυτήν την έκδοση. Χρησιμοποιήστε SaveFormat.PPTX για όλες τις λειτουργίες αποθήκευσης.
Μπορώ να ανοίξω .ppt (παλιές PowerPoint 97–2003) αρχεία;
Όχι. Μόνο αρχεία .pptx (Office Open XML) υποστηρίζονται. Η παλαιότερη δυαδική μορφή .ppt δεν υποστηρίζεται από αυτή τη βιβλιοθήκη.
Πώς μπορώ να αποκτήσω πρόσβαση στις διαφάνειες;
Οι διαφάνειες είναι μια λίστα με μηδενική αρίθμηση προσβάσιμη μέσω prs.slides:
first_slide = prs.slides[0]
slide_count = len(prs.slides)Πώς προσθέτω μια δεύτερη διαφάνεια;
Χρησιμοποιήστε prs.slides.add_empty_slide() με διάταξη:
with slides.Presentation() as prs:
layout = prs.layout_slides[0]
prs.slides.add_empty_slide(layout)
slide2 = prs.slides[1]
prs.save("two-slides.pptx", SaveFormat.PPTX)Πώς μπορώ να ορίσω το χρώμα φόντου της διαφάνειας;
Ο χρωματισμός φόντου διαφάνειας δεν είναι διαθέσιμος σε αυτήν την έκδοση. Η κλάση Slide δεν εκθέτει μια ιδιότητα background. Η προσπάθεια slide.background θα προκαλέσει AttributeError. Αυτή η δυνατότητα δεν έχει υλοποιηθεί στην τρέχουσα έκδοση.
Πώς χρησιμοποιώ NullableBool?
NullableBool είναι ένας τρι-κατάστασης enum που χρησιμοποιείται για ιδιότητες μορφοποίησης. Χρησιμοποιήστε το NullableBool.TRUE (όχι το True της Python) για έντονη, πλάγια και παρόμοιες ιδιότητες:
from aspose.slides_foss import NullableBool, TextUnderlineType
fmt.font_bold = NullableBool.TRUE
fmt.font_italic = NullableBool.FALSE
# font_underline is TextUnderlineType, not NullableBool:
fmt.font_underline = TextUnderlineType.NOT_DEFINED # inherits from themeΓιατί η ρύθμιση του χρώματος κειμένου δεν έχει καμία επίδραση;
Πρέπει επίσης να ορίσετε fill_type = FillType.SOLID πριν από την εκχώρηση του χρώματος:
from aspose.slides_foss import FillType
from aspose.slides_foss.drawing import Color
fmt.fill_format.fill_type = FillType.SOLID
fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)Μπορώ να χρησιμοποιήσω διαγράμματα ή SmartArt;
Διαγράμματα, SmartArt, αντικείμενα OLE, animation, μεταβάσεις, υπερσυνδέσμους, VBA macros και ψηφιακές υπογραφές δεν υλοποιούνται σε αυτήν την έκδοση και προκαλούν NotImplementedError.
Η βιβλιοθήκη υποστηρίζει την Python 3.9;
Όχι. Απαιτείται η Python 3.10 ή νεότερη.
Είναι αυτή η βιβλιοθήκη ασφαλής ως προς τα νήματα;
Κάθε Presentation αντικείμενο είναι ανεξάρτητο. Η δημιουργία και χρήση ξεχωριστών Presentation στιγμιοτύπων από ξεχωριστά νήματα είναι ασφαλής, εφόσον δεν μοιράζεστε ένα μόνο Presentation αντικείμενο μεταξύ νημάτων χωρίς εξωτερικό κλείδωμα.
Πώς ενσωματώνω μια εικόνα;
Διαβάστε τα bytes της εικόνας και προσθέστε τα στο prs.images, στη συνέχεια δημιουργήστε ένα PictureFrame:
with open("logo.png", "rb") as f:
image_data = f.read()
image = prs.images.add_image(image_data)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, 200, 150, image)