چگونه ارائهها را در Python بارگذاری کنیم
Aspose.Slides FOSS for Python lets you open any .pptx فایل، محتویات آن را بررسی کنید و یا آن را دوباره به PPTX ذخیره کنید یا دادهها را از آن استخراج کنید. این راهنما شامل باز کردن یک فایل، پیمایش اسلایدها، خواندن متن شکلها و ذخیرهسازی دورانی است.
راهنمای گام به گام
مرحله ۱: نصب بسته
pip install aspose-slides-fossمرحله ۲: باز کردن یک ارائه موجود
مسیر فایل را به slides.Presentation(). از مدیر زمینه (context manager) استفاده کنید تا پاکسازی تضمین شود.
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 ناشناخته در فایل منبع به همان صورت حفظ میشوند: کتابخانه هرگز محتوایی را که هنوز درک نکرده است حذف نمیکند.
مرحله ۳: بررسی اسلایدها
بر تمام اسلایدها پیمایش کنید و اندیس آنها را چاپ کنید:
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")مرحله ۴: خواندن متن اشکال
بر روی اشکال پیمایش کنید و متن را از اشکالی که یک 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}")مرحله ۵: خواندن ویژگیهای سند
دسترسی به ویژگیهای اصلی سند از 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}")مرحله ۶: ذخیرهسازی دورانی
پس از بررسی یا تغییر ارائه، آن را دوباره به 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) فقط. Legacy .ppt فایلهای (binary 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 ویژگی برای خواندن دادههای خام تصویر.
آیا بارگذاری از یک جریان در حافظه (in-memory stream) پشتیبانی میشود؟?
بارگذاری مستقیم از 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)