تصدير العروض التقديمية إلى HTML مع صور مرتبطة خارجيًا باستخدام بايثون

Background

بشكل افتراضي، يدمج تصدير HTML جميع الموارد مباشرةً في ملف HTML باستخدام ترميز Base64. ينتج عن ذلك ملف HTML واحد مكتمل ذاتيًا وهو ملائم للعرض والتوزيع. ومع ذلك، فإن لهذا الأسلوب عيوبًا:

  • يكون الملف الناتج أكبر بكثير من الموارد الأصلية بسبب عبء ترميز Base64.
  • من الصعب تحديث أو استبدال الصور والملفات المضمَّنة.

Alternative Approach

نهج بديل باستخدام ILinkEmbedController يتجنب هذه القيود.

الفئة LinkController أدناه تنفذ ILinkEmbedController ويتم تمريرها إلى مُنشئ HtmlOptions. تُظهر الفئة ثلاث طرق تتحكم في كيفية تضمين الموارد أو ربطها أثناء تصدير HTML:

get_object_storing_location(id, entity_data, semantic_name, content_type, recommended_extension): تُستدعى عندما يواجه المصدر المُصدِّر موردًا ويجب أن يقرر أين يخزنه. أهم المعلمات هي id (المعرّف الفريد للمورد في عملية التصدير هذه) وcontent_type (نوع MIME للمورد). إرجاع LinkEmbedDecision.LINK لربط المورد، أو LinkEmbedDecision.EMBED لتضمينه.

get_url(id, referrer): تُعيد عنوان URL الذي سيظهر في ملف HTML الناتج للمورد المحدد بـ id (مع إمكانية الأخذ في الاعتبار كائن المرجع).

save_external(id, entity_data): تُستدعى عندما يحتاج مورد مختار للربط إلى كتابة خارجية. نظرًا لتوفير المعرف والمحتوى (كمصفوفة بايت)، يمكنك حفظ المورد بأي طريقة تريدها.

تنفيذ Python للفئة LinkController التي تُنفّذ ILinkEmbedController موضح أدناه.

# [TODO[not_supported_yet]: تنفيذ python لواجهات .NET]

بعد تنفيذ الفئة LinkController، يمكنك استخدامها مع فئة HtmlOptions لتصدير العرض التقديمي إلى HTML مع صور مرتبطة خارجيًا، كما هو موضح أدناه:

# [TODO[not_supported_yet]: تنفيذ python لواجهات .NET]

قمنا بتعيين SlideImageFormat.SVG إلى خاصية slide_image_format بحيث يحتوي ملف HTML الناتج على بيانات SVG لعرض محتويات العرض التقديمي.

أنواع المحتوى: إذا كان العرض التقديمي يحتوي على صور نقطية raster، يجب أن يكون كود الفئة مستعدًا لمعالجة كل من نوعي المحتوى image/jpeg وimage/png. قد لا يتطابق محتوى الصور المُصدَّرة مع ما تم تخزينه في العرض التقديمي. تقوم الخوارزميات الداخلية في Aspose.Slides بتحسين الحجم وتستخدم إما برنامج ترميز JPEG أو PNG (حسب ما ينتج ملفًا أصغر). تُشفَّر الصور التي تحتوي على قناة ألفا (شفافية) دائمًا كـ PNG.