Πώς να προσθέσετε σχήματα στο PowerPoint σε Python
Aspose.Slides FOSS for Python supports adding AutoShapes, Tables, Connectors, and PictureFrames to presentation slides. All shape types are added through the slide.shapes συλλογή .
Βήμα προς βήμα οδηγός
Βήμα 1: Εγκατάσταση του πακέτου
pip install aspose-slides-fossΕλέγξτε την εγκατάσταση:
import aspose.slides_foss as slides
print("Ready")Βήμα 2: Δημιουργήστε μια παρουσίαση
Πάντα χρησιμοποιείτε Presentation ως διευθυντής συνδέσμων.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
# ... add shapes ...
prs.save("output.pptx", SaveFormat.PPTX)Βήμα 3: Προσθέστε ένα AutoShape
slide.shapes.add_auto_shape(shape_type, x, y, width, height) τοποθετείτε μια μορφή στη συγκεκριμένη θέση και το μέγεθος (όλα σε σημεία). ShapeType Συνεχώς επιλέξτε τη μορφή.
import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
# Rectangle
rect = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
rect.add_text_frame("Rectangle shape")
# Ellipse
ellipse = slide.shapes.add_auto_shape(ShapeType.ELLIPSE, 400, 50, 200, 100)
ellipse.add_text_frame("Ellipse shape")
prs.save("autoshapes.pptx", SaveFormat.PPTX)Βήμα 4: Προσθέστε ένα τραπέζι
slide.shapes.add_table(x, y, col_widths, row_heights) δημιουργεί έναν πίνακα στη συγκεκριμένη θέση. πλάτος στήλης και ύψος γραμμής είναι λίστες τιμών σημείων.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
col_widths = [150.0, 150.0, 150.0]
row_heights = [40.0, 40.0, 40.0]
table = slide.shapes.add_table(50, 200, col_widths, row_heights)
# Set header row text
headers = ["Product", "Units", "Revenue"]
for col, text in enumerate(headers):
table.rows[0][col].text_frame.text = text
# Set data rows
rows = [
["Widget A", "120", "$2,400"],
["Widget B", "85", "$1,700"],
]
for row_idx, row_data in enumerate(rows):
for col, text in enumerate(row_data):
table.rows[row_idx + 1][col].text_frame.text = text
prs.save("table.pptx", SaveFormat.PPTX)Βήμα 5: Προσθέστε ένα σύνδεσμο
Συνδέσεις συνδέουν δύο μορφές οπτικά. Δημιουργήστε τις μορφές πρώτα, στη συνέχεια προσθέστε ένα σύνδεσμο και ορίστε τα σημεία εκκίνησης και τερματισμού της σύνδέσμου.
import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
box1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 100, 150, 60)
box1.add_text_frame("Start")
box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 350, 100, 150, 60)
box2.add_text_frame("End")
conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
conn.start_shape_connected_to = box1
conn.start_shape_connection_site_index = 3 # right side of box1
conn.end_shape_connected_to = box2
conn.end_shape_connection_site_index = 1 # left side of box2
prs.save("connector.pptx", SaveFormat.PPTX)Οι δείκτες τοποθεσίας σύνδεσης αριθμούνται 0-3 για έναν ορθό γωνίο: πάνω = 0, αριστερά = 1, κάτω = 2, δεξιά = 3.
Βήμα 6: Προσθήκη ενός πίνακα εικόνας
Εισάγετε μια εικόνα και προσθέστε την στο σκιτ ως ένα PictureFrame.Διαβάστε πρώτα τα byte εικόνας, προσθέστε αυτά στη συλλογή εικόνων της παρουσίασης και στη συνέχεια δημιουργήστε το πλαίσιο.
import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
with open("logo.png", "rb") as f:
image_data = f.read()
image = prs.images.add_image(image_data)
slide = prs.slides[0]
slide.shapes.add_picture_frame(
ShapeType.RECTANGLE, # bounding shape type
50, 50, # x, y in points
200, 150, # width, height in points
image
)
prs.save("with-image.pptx", SaveFormat.PPTX)Κοινά προβλήματα και τακτοποιήσεις
Η μορφή εμφανίζεται έξω από την ορατή περιοχή της σκιής
Τα Slides είναι 960 × 540 σημεία ανά προεπιλογή. x ή y πέρα από αυτά τα όρια τοποθετείται η μορφή off-slide. x < 960 και y < 540,και να εξασφαλίσει x + width <= 960 και y + height <= 540.
AttributeError: 'NoneType' object has no attribute 'text_frame'
add_auto_shape() επιστρέφει το αντικείμενο σχήματος απευθείας. αν δείτε None,Βεβαιωθείτε ότι δεν απορρίπτει την αξία επιστροφής.
Το κείμενο του πίνακα κελί είναι άδειο μετά την αποστολή
Η σωστή ιδιοκτησία είναι .text_frame.text (Δεν είναι .text Στον κελί (στο σημείο) τα κύτταρα που έχουν πρόσβαση ως table.rows[row_index][col_index].text_frame.text = "value".
Συχνές ερωτήσεις
Πόσες μορφές μπορώ να προσθέσω σε ένα σκι;?
Πρακτικά όρια εξαρτώνται από το μέγεθος του αρχείου και την ικανότητα rendering του στόχου σας PPTX προβολέας.
Μπορώ να αλλάξω τη θέση μιας μορφής μετά την προσθήκη της;?
Το αντικείμενο σχήματος που επιστρέφει από το add_auto_shape() Έχει x, y, width,και height Ιδιότητες που μπορείτε να ρυθμίσετε:
shape.x = 100
shape.y = 200
shape.width = 400
shape.height = 80Μπορώ να ορίσω το χρώμα του σχήματος (συνοριακό);?
Ναι, μέσω shape.line_format:
from aspose.slides_foss.drawing import Color
shape.line_format.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)Οι πίνακες υποστηρίζονται;?
Οι πίνακες, τα SmartArt και τα αντικείμενα OLE δεν εφαρμόζονται σε αυτή την έκδοση και αναρτώνται. NotImplementedError.