نحوه بارگذاری ارائه‌ها در پایتون

نحوه بارگذاری ارائه‌ها در پایتون

Aspose.Slides FOSS for Python به شما امکان می‌دهد هر فایل .pptx را باز کنید، محتوای آن را بررسی کنید و یا آن را به‌صورت PPTX ذخیره کنید یا داده‌ها را از آن استخراج کنید. این راهنما شامل باز کردن یک فایل، پیمایش اسلایدها، خواندن متن شکل‌ها و ذخیره‌سازی دورانی است.

راهنمای گام به گام

مرحله 1: نصب بسته

pip install aspose-slides-foss

مرحله ۲: باز کردن یک ارائه موجود

مسیر فایل را به 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 ناشناخته در فایل منبع به‌صورت دقیق حفظ می‌شوند: کتابخانه هرگز محتوایی را که هنوز درک نمی‌کند حذف نمی‌کند.


مرحله ۳: بررسی اسلایدها

بر روی تمام اسلایدها تکرار کنید و شاخص آن‌ها را چاپ کنید:

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: ذخیره‌سازی دورگرد

پس از بازرسی یا ویرایش ارائه، آن را به‌صورت 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 ندارند

برخی اشکال (اتصالات، فریم‌های تصویر، گروه‌اشکال) 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)

همچنین ببینید

 فارسی