כיצד להוסיף צורות ל-PowerPoint ב-Python
Aspose.Slides FOSS for Python תומך בהוספת AutoShapes, Tables, Connectors ו-PictureFrames לשקופיות מצגת. כל סוגי הצורות מתווספים דרך האוסף 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. קרא תחילה את בתי הבייט של התמונה, הוסף אותם לאוסף התמונות של המצגת, ואז צור את המסגרת.
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)בעיות נפוצות ותיקונים
הצורה מופיעה מחוץ לאזור השקופית הגלוי
המצגות הן 720 × 540 נקודות כברירת מחדל. ערכים של x או y מחוץ לגבולות אלה מציבים את הצורה מחוץ לשקף. שמור על x < 720 ו-y < 540, והבטח את x + width <= 720 ו-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".
שאלות נפוצות
כמה צורות ניתן להוסיף לשקופית?
אין מגבלה שמוטלת על ידי הספרייה. המגבלות המעשיות תלויות בגודל הקובץ וביכולת הרינדור של מציג ה‑PPTX היעד שלך.
האם ניתן לשנות את מיקום הצורה לאחר שהוספתי אותה?
כן. האובייקט shape המוחזר על ידי 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.