حفظ العروض التقديمية في بايثون
نظرة عامة
بعد أن تنشئ عرضًا تقديميًا أو فتح أحد العروض الموجودة، استخدم طريقة Presentation.save لكتابة النتيجة. يمكن لـ Aspose.Slides for Python عبر .NET حفظ عرض تقديمي إلى ملف أو تدفق بصيغ PowerPoint و OpenDocument و PDF وغيرها. الأقسام التالية تغطي عمليات الحفظ القياسية والخيارات المتاحة لإخراج PPTX.
حفظ العروض التقديمية إلى ملفات
لحفظ عرض تقديمي إلى ملف، مرّر مسار الإخراج وقيمة SaveFormat إلى طريقة Presentation.save. تحدد قيمة التنسيق نوع الملف الذي ينشئه Aspose.Slides.
المثال التالي ينشئ عرضًا تقديميًا ويحفظه كملف PPTX:
import aspose.slides as slides
with slides.Presentation() as presentation:
# إضافة أو تعديل محتوى العرض التقديمي هنا.
presentation.save("Output.pptx", slides.export.SaveFormat.PPTX)
حفظ العروض التقديمية بصيغتها الأصلية
لأمثلة كشف الملف والتدفق، وسلوك العروض المُنشأة حديثًا، والتمييز بين صيغ المصدر والإخراج، راجع Determine the Original Presentation Format.
في تطبيق معالجة دفعية، قد لا يُعرف تنسيق الإدخال مسبقًا. بعد تحميل ملف، اقرأ صيغته الأصلية من خاصية Presentation.source_format. مرّر قيمة SourceFormat الناتجة إلى SlideUtil.to_save_format للحصول على قيمة SaveFormat المقابلة، ثم استخدم Presentation.save لكتابة العرض المعدل.
المثال الكامل التالي يعالج كل ملف في دليل الإدخال، يحدث عنوانه، ويحفظه إلى دليل الإخراج بالصيغ التي تم تحميله بها:
from pathlib import Path
import aspose.slides as slides
from aspose.slides.util import SlideUtil
input_directory = Path("Input")
output_directory = Path("Output")
output_directory.mkdir(exist_ok=True)
for input_path in input_directory.iterdir():
if not input_path.is_file():
continue
try:
with slides.Presentation(str(input_path)) as presentation:
source_format = presentation.source_format
save_format = SlideUtil.to_save_format(source_format)
presentation.document_properties.title = "Processed by the batch application"
output_path = output_directory / input_path.name
presentation.save(str(output_path), save_format)
except Exception as exception:
print(f"Cannot process '{input_path}': {exception}")
SlideUtil.to_save_format يربط صيغ PPT و PPTX و ODP و PPTM و PPSX و PPSM و POTX و POTM و PPS و POT و OTP و FODP و PowerPoint XML بصيغ الحفظ المقابلة. يربط صيغ مصدر العرض فقط؛ لا يُقصد به اختيار صيغ التصدير مثل PDF أو HTML أو TIFF أو الصور. تمرير قيمة SourceFormat غير مدعومة أو غير صالحة يرفع استثناء.
ملفات PPT و PPS و POT القديمة تستخدم نفس الحاوية الثنائية. عندما يُحمَّل عرض من تدفق بدون امتداد ملف، قد يُحدد ملف PPS أو POT كـ PPT. إذا كان من الضروري الحفاظ على هذه الأنواع الفرعية القديمة، احتفظ باسم الملف الأصلي أو بيانات التعريف الخاصة بالتنسيق بشكل منفصل واستخدمها عند اختيار اسم ملف الإخراج وتنسيقه.
حفظ العروض التقديمية إلى تدفقات
للكتابة إلى عرض تقديمي دون الاعتماد على مسار ملف نهائي، مرّر تدفقًا قابلًا للكتابة من نوع BinaryIO وقيمة SaveFormat إلى طريقة Presentation.save. هذا الأسلوب مفيد عندما يجب إرجاع الإخراج من خدمة ويب، أو تخزينه في قاعدة بيانات، أو معالجته في الذاكرة.
المثال التالي يحفظ عرضًا تقديميًا جديدًا إلى تدفق ملف:
import aspose.slides as slides
with slides.Presentation() as presentation:
with open("Output.pptx", "wb") as output_stream:
presentation.save(output_stream, slides.export.SaveFormat.PPTX)
حفظ العروض التقديمية بنوع عرض محدد مسبقًا
يمكنك تحديد العرض الذي يفتح به PowerPoint العرض المحفوظ أولًا. اضبط خاصية ViewProperties.last_view إلى قيمة ViewType قبل الحفظ.
المثال التالي يضبط عرض Slide Master كالعرض الأولي:
import aspose.slides as slides
with slides.Presentation() as presentation:
presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW
presentation.save("SlideMasterView.pptx", slides.export.SaveFormat.PPTX)
حفظ العروض التقديمية بالتنسيق الصارم لـ Office Open XML
لإنشاء ملف PPTX يتوافق مع ملف تعريف Strict لـ Office Open XML، أنشئ كائنًا من PptxOptions واضبط خاصية conformance إلى Conformance.ISO_29500_2008_STRICT. ثم مرّر الخيارات إلى طريقة Presentation.save.
import aspose.slides as slides
options = slides.export.PptxOptions()
options.conformance = slides.export.Conformance.ISO_29500_2008_STRICT
with slides.Presentation() as presentation:
presentation.save("StrictOfficeOpenXml.pptx", slides.export.SaveFormat.PPTX, options)
حفظ العروض التقديمية بتنسيق Office Open XML في وضع Zip64
حدود أرشيف ZIP القياسي تحصر حجم كل إدخال مضغوط وغير مضغوط، وحجم الأرشيف الكلي، وعدد الإدخالات. لأن ملف PPTX هو أرشيف ZIP، قد يتجاوز العرض الضخم تلك الحدود. امتدادات ZIP64 ترفع الحدود المطبقة لحجم الإدخال وعدد الإدخالات.
استخدم خاصية PptxOptions.zip_64_mode للتحكم فيما إذا كان Aspose.Slides يكتب امتدادات ZIP64:
IF_NECESSARYيستخدم ZIP64 فقط عندما يتجاوز العرض حدود ZIP القياسية. هذا هو الوضع الافتراضي.NEVERيعطل امتدادات ZIP64.ALWAYSيكتب دائمًا امتدادات ZIP64.
المثال التالي يفعّل دائمًا امتدادات ZIP64 للعرض الناتج:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.zip_64_mode = slides.export.Zip64Mode.ALWAYS
presentation.save("OutputZip64.pptx", slides.export.SaveFormat.PPTX, options)
Warning
إذا تم استخدامZip64Mode.NEVER ولا يمكن للعرض أن يتناسب مع حدود ZIP القياسية، فإن عملية الحفظ تُثير استثناء PptxException.
حفظ العروض التقديمية بتنسيق Office Open XML مع مستويات الضغط
لإخراج PPTX، يمكنك موازنة سرعة الحفظ ضد حجم الملف بضبط خاصية PptxOptions.compression_level. توفر تعداد CompressionLevel القيم التالية:
NONEيخزن البيانات بدون ضغط.LEVEL1يقدم أسرع ضغط وأكبر حجم للملف المضغوط.LEVEL2إلىLEVEL5تفضّل تدريجيًا حجمًا أصغر على سرعة الحفظ.LEVEL6يوازن بين سرعة الحفظ وحجم الملف. وهذا هو المستوى الافتراضي.LEVEL7وLEVEL8يفضّلان حجمًا أصغر أكثر على سرعة الحفظ.LEVEL9يوفر أقوى ضغط ويتطلب أكبر وقت معالجة.
المثال التالي يحفظ عرضًا تقديميًا بدون ضغط:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.compression_level = slides.export.CompressionLevel.NONE
presentation.save("OutputNoCompression.pptx", slides.export.SaveFormat.PPTX, options)
المثال التالي يستخدم أقصى مستوى ضغط:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.compression_level = slides.export.CompressionLevel.LEVEL9
presentation.save("OutputMaximumCompression.pptx", slides.export.SaveFormat.PPTX, options)
حفظ العروض التقديمية دون تحديث الصورة المصغرة
عند حفظ عرض تقديمي كـ PPTX، تتحكم خاصية PptxOptions.refresh_thumbnail في صورة المستند المصغرة:
Trueيعيد إنشاء الصورة المصغرة أثناء عملية الحفظ. وهذه هي القيمة الافتراضية.Falseيحافظ على الصورة المصغرة الحالية. إذا لم يكن للعرض صورة مصغرة، فإن Aspose.Slides لا يولد واحدة.
المثال التالي يحفظ عرضًا تقديميًا دون تحديث صورته المصغرة:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.refresh_thumbnail = False
presentation.save("Output.pptx", slides.export.SaveFormat.PPTX, options)
Note
تعطيل تحديث الصورة المصغرة يمكن أن يقلل الوقت المطلوب لحفظ ملف PPTX.Note
توفر Aspose أداة مجانية PowerPoint Splitter تم بناؤها باستخدام Aspose.Slides API. تقوم بحفظ الشرائح المحددة من عرض تقديمي كملفات PPT أو PPTX منفصلة.FAQ
هل يدعم Aspose.Slides الحفظ المتزايد أو “الحفظ السريع”?
لا. كل عملية حفظ تكتب ملفًا نهائيًا مكتملًا بدلاً من تحديث الأجزاء التي تغيرت فقط.
هل يمكن لعدة خيوط حفظ نفس كائن Presentation؟
لا. كائن Presentation غير آمن للاستخدام المتعدد الخيوط. يجب الوصول إلى كل كائن وحفظه من خيط واحد في كل مرة.
ماذا يحدث للروابط التشعبية والملفات المرتبطة خارجيًا عند حفظ العرض التقديمي؟
تظل Hyperlinks في العرض. لا تقوم Aspose.Slides بنسخ الملفات المرتبطة خارجيًا، لذا يجب أن يتمكن العرض المحفوظ من الوصول إلى مواقعها.
هل يمكنني حفظ بيانات تعريف المستند مثل المؤلف، العنوان، الشركة، وتاريخ الإنشاء؟
نعم. اضبط document properties المناسبة قبل الحفظ، وستكتبها Aspose.Slides إلى ملف الإخراج.