كيفية حفظ العروض التقديمية في Python

كيفية حفظ العروض التقديمية في Python

Aspose.Slides FOSS for Python saves presentations exclusively to .pptx تنسيق باستخدام prs.save(path, SaveFormat.PPTX).هذا الدليل يغطي نموذج التخزين الصحيح، وتوفير إلى مسار مختلف، والأخطاء الشائعة المتعلقة التوفين.

خطوة بخطوة دليل

الخطوة 1: قم بتثبيت الحزمة

pip install aspose-slides-foss

الخطوة 2: فتح أو إنشاء عرض

استخدم دائمًا مدير السياق.يجب أن يحدث استدعاء الادخار داخل with كتلة .

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

# Create new
with slides.Presentation() as prs:
    prs.save("new.pptx", SaveFormat.PPTX)

# Open existing
with slides.Presentation("input.pptx") as prs:
    prs.save("output.pptx", SaveFormat.PPTX)

الخطوة الثالثة: حفظ في نهاية المطاف with كتلة

موقع الـ save() ووصفها بالحديث الأخير داخل with بعد أن تم الانتهاء من جميع التعديلات.

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]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
    shape.add_text_frame("Hello, World!")
    prs.save("output.pptx", SaveFormat.PPTX)

الخطوة 4: حفظها في مسار مختلف

اجتياز مسار إخراج مختلف لإنشاء ملف جديد دون تعديل الأصلي:

with slides.Presentation("template.pptx") as prs:
    # modify ...
    prs.save("customized.pptx", SaveFormat.PPTX)

وَالْمُتَّقِينَ template.pptx لا يتم تعديل الملفات.; customized.pptx (وَإِنْ كُنَّا مُرْسِلِينَ فَمَا جَاءَهُمْ) أي إن كانوا قد خلقوا.


الخطوة الخامسة: تحقق من النتيجة.

بعد أن كان with يخرج الملف كاملاً ويغلقه.تحقق من وجوده:

import os
from pathlib import Path

output = Path("output.pptx")
print(f"Saved: {output.exists()}, size: {output.stat().st_size} bytes")

دعم النموذج المحفوظة

شكلقيمة Enumدعم
PPTX (Office Open XML) - مكتب مفتوح XMLSaveFormat.PPTXنعم
PDFN/Aلا
HTMLN/Aلا
SVGN/Aلا
PNG / JPEGN/Aلا
ODP (أوراق النشر المفتوحة)N/Aلا

فقط PPTX مدعومة.محاولة حفظ في أي تنسيق آخر سوف ترتفع NotImplementedError أو خطأ في النموذج غير المدعوم.


مشكلات و تصحيحات مشتركة

PermissionError: [Errno 13] Permission denied

يتم فتح ملف الناتج في تطبيق آخر (على سبيل المثال، يحتوي PowerPoint على الملف مفتوح).

يتم إنشاء الملف ولكن يبدو فارغا أو مكسورة

ضمان prs.save() يُدعى داخل with بعد ذلك، وليس بعدها. - بعد with الخروج من المجموعة، و Presentation يتم إزالة الكائنات، وسوف تفشل المكالمات اللاحقة بصمت أو تثير خطأ.

NotImplementedError عندما ينقذ

هذا يحدث عند محاولة تنسيق حفظ غير PPTX، أو عند استخدام ميزة غير مدعومة (مثل الرسوم البيانية أو الرؤى) أثناء حفظ.


الأسئلة المتكررة

هل يمكنني حفظ الملفات التي قمت بفتحها؟?

نعم.التوفير في نفس المسار يبالغ في كتابة الملف الأصلي:

with slides.Presentation("deck.pptx") as prs:
    # modify ...
    prs.save("deck.pptx", SaveFormat.PPTX)  # overwrites original

هل يمكنني حفظ بيوت بدلاً من ملف؟?

نعم، اجتاز io.BytesIO موضوع مباشر إلى prs.save() - يوافق على أي BinaryIO الوجهة :

import io
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

buf = io.BytesIO()
with slides.Presentation() as prs:
    # ... modify presentation ...
    prs.save(buf, SaveFormat.PPTX)

pptx_bytes = buf.getvalue()

هل يحتفظ الادخار بالمحتوى الذي لم أعده؟?

نعم، يتم الحفاظ على أجزاء XML غير معروفة من الملف الأصلي في التوراة.المكتبة تصف فقط أطراف نموذج المستند الذي يفهمه، وتمر عبر أي XML التي لا يعرفها.


انظر أيضا

 العربية