איך לטעון מצגות ב-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 (בינארי PowerPoint 97–2003) אינם נתמכים.
לצורות אין תכונת text_frame
חלק מהצורות (Connectors, PictureFrames, GroupShapes) אין להן text_frame. הגן עם hasattr(shape, "text_frame") and shape.text_frame is not None לפני גישה לטקסט.
שאלות נפוצות
האם הטעינה משמרת את כל התוכן המקורי?
כן. חלקי XML לא ידועים נשמרים במדויק בעת שמירה במעגל. הספרייה לא תסיר שום תוכן XML שהיא עדיין לא מבינה.
האם ניתן לטעון קובץ PPTX מוגן בסיסמה?
מצגות מוגנות בסיסמה (מוצפנות) אינן נתמכות בגרסה זו.
האם אני יכול לחלץ תמונות משובצות?
גש לאוסף התמונות: prs.images מחזיר את ImageCollection. לכל תמונה יש content_type ו bytes מאפיין לקריאת נתוני התמונה הגולמיים.
האם טעינה מזרם בזיכרון נתמך?
טעינה ישירה מ io.BytesIO אינו חשוף ב‑API הנוכחי. כתוב את הבייטים לקובץ זמני תחילה:
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)