تبدیل ارائه‌ها به HTML5 در پایتون از طریق جاوا

نمای کلی

این مقاله توضیح می‌دهد چگونه ارائه‌های PowerPoint را با استفاده از Aspose.Slides for Python via Java به HTML5 تبدیل کنید. این مقاله صادرات اصلی، کنترل انیمیشن‌های شکل و انتقال اسلایدها و طرح‌بندی نظرات را پوشش می‌دهد. همچنین خروجی HTML5 را با خروجی مبتنی بر SVG صادرات استاندارد HTML مقایسه می‌کند.

نمونه‌ها به Aspose.Slides for Python via Java و یک ران‌تایم جاوا سازگار نیاز دارند. ارائه‌های ورودی را در پوشه کاری فعلی قرار دهید. هر نمونه JVM را فقط در صورتی که قبلاً در حال اجرا نباشد، راه‌اندازی می‌کند.

صادرات PowerPoint به HTML5

مثال زیر یک ارائه را از پوشه کاری بارگذاری کرده و در قالب HTML5 ذخیره می‌کند. این مثال از تنظیمات پیش‌فرض صادرات استفاده می‌کند؛ مثال بعدی نشان می‌دهد چگونه پخش انیمیشن را به‌طور صریح کنترل کنید. مسیر ورودی را با مسیر ارائه خود جایگزین کنید.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("pres.pptx")
try:
    presentation.save("pres.html", SaveFormat.Html5)
finally:
    presentation.dispose()

برای خروجی گرفتن بدون پخش انیمیشن‌های شکل یا انتقال اسلایدها، مقدار False را به setAnimateShapes و setAnimateTransitions در Html5Options پاس دهید. این تنظیمات مستقل‌اند، بنابراین می‌توانید یکی را فعال و دیگری را غیرفعال کنید. نمونه ارائه را با هر دو نوع انیمیشن غیرفعال شده در صفحه تولیدی صادر می‌کند.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Html5Options, Presentation, SaveFormat

html5_options = Html5Options()
html5_options.setAnimateShapes(False)
html5_options.setAnimateTransitions(False)

presentation = Presentation("pres.pptx")
try:
    presentation.save("pres5.html", SaveFormat.Html5, html5_options)
finally:
    presentation.dispose()

صادرات PowerPoint به HTML

استاندارد صادرات HTML از رویکرد رندر متفاوتی استفاده می‌کند: محتوای اسلاید به‌صورت SVG در داخل صفحه HTML نمایش داده می‌شود. مثال زیر یک ارائه را با استفاده از این رویکرد به سند HTML تبدیل می‌کند.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpime.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("pres.pptx")
try:
    presentation.save("pres.html", SaveFormat.Html)
finally:
    presentation.dispose()

مارکاپ ساده‌شده زیر ساختار صفحه تولید شده را نشان می‌دهد. عنصر SVG شامل محتوای رندر شده اسلاید است؛ متن نگهدارنده بیانگر آن محتواست و خروجی واقعی صادرات نیست.

<body>
<div class="slide" name="slide" id="slideslideIface1">
     <svg version="1.1">
         <g> THE SLIDE CONTENT GOES HERE </g>
     </svg>
</div>
</body>

صادرات PowerPoint به نمای اسلاید HTML5

صادرات HTML5 صفحه‌ای برای مشاهده و ناوبری اسلایدهای ارائه در مرورگر تولید می‌کند. این مثال هر دو setAnimateShapes و setAnimateTransitions را فعال می‌کند تا نمای اسلاید صادر شده بتواند افکت‌های ارائه منبع را پخش کند.

از ارائه‌ای استفاده کنید که از پیش شامل انیمیشن‌های شکل و انتقال اسلاید باشد تا اثر این تنظیمات را ببینید. فعال کردن آن‌ها افکت جدیدی به اسلایدهایی که هیچ افکتی ندارند اضافه نمی‌کند. پس از صادرات، سند HTML5 تولید شده را با مرورگری که فایل‌های پشتیبانی‌کننده در دسترس هستند باز کنید.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Html5Options, Presentation, SaveFormat

html5_options = Html5Options()
html5_options.setAnimateShapes(True)
html5_options.setAnimateTransitions(True)

presentation = Presentation("pres.pptx")
try:
    presentation.save("HTML5-slide-view.html", SaveFormat.Html5, html5_options)
finally:
    presentation.dispose()

تبدیل ارائه به سند HTML5 با نظرات

می‌توانید نظرات موجود در اسلایدها را در خروجی HTML5 گنجانده تا خوانندگان بازخورد را در کنار محتوای اسلاید مشاهده کنند. مثال در این بخش انتظار دارد ارائه منبع شامل نظرات باشد، همان‌طور که در ادامه نشان داده شده است. این مثال آن نظرات را صادر می‌کند؛ نظرات جدیدی ایجاد نمی‌کند.

دو نظر بر روی اسلاید ارائه

یک شیء NotesCommentsLayoutingOptions را به متد setSlidesLayoutOptions از کلاس Html5Options پاس دهید. از setCommentsPosition برای انتخاب Right از شمارنده CommentsPositions استفاده کنید تا نظرات در سمت راست هر اسلاید قرار گیرند.

مثال زیر ارائه را با این طرح‌بندی نظرات به HTML5 صادر می‌کند. ارائه‌ای بدون نظرات متنی برای نمایش نخواهد داشت.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import CommentsPositions, Html5Options, NotesCommentsLayoutingOptions, Presentation, SaveFormat

layout_options = NotesCommentsLayoutingOptions()
layout_options.setCommentsPosition(CommentsPositions.Right)

html5_options = Html5Options()
html5_options.setSlidesLayoutOptions(layout_options)

presentation = Presentation("sample.pptx")
try:
    presentation.save("output.html", SaveFormat.Html5, html5_options)
finally:
    presentation.dispose()

تصویر زیر سند HTML5 صادر شده را با نظراتی که در کنار اسلاید نمایش داده می‌شوند نشان می‌دهد.

نظرات در سند خروجی HTML5

حذف پیوندهای JavaScript هنگام صادرات

فرض کنید hyperlinks.pptx شامل متن پیوندی با هدف javascript:alert('Hello') و یک پیوند عادی https://example.com/ باشد. برای حذف پیوند JavaScript هنگام صادرات، مقدار True را به SaveOptions.setSkipJavaScriptLinks پاس دهید. مقدار پیش‌فرض False است، بنابراین این پیوندها فیلتر نمی‌شوند مگر اینکه گزینه را فعال کنید.

مثال زیر ارائه را از پوشه کاری بارگذاری کرده و با استفاده از Html5Options صادر می‌کند:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Html5Options, Presentation, SaveFormat

html5_options = Html5Options()
html5_options.setSkipJavaScriptLinks(True)

presentation = Presentation("hyperlinks.pptx")
try:
    presentation.save("filtered-html5.html", SaveFormat.Html5, html5_options)
finally:
    presentation.dispose()

فایل صادر شده پیوند JavaScript را حذف می‌کند در حالی که متن آن و پیوند HTTPS عادی حفظ می‌شوند. ارائه منبع بدون تغییر می‌ماند.

این گزینه پیوندهای JavaScript را فیلتر می‌کند؛ تمام اسکریپت‌ها یا سایر محتواهای فعال را حذف نمی‌کند و همچنین تضمینی برای رعایت CSP نیست. به‌عنوان مثال، خروجی HTML5 همچنان شامل اسکریپت‌های ناوبری اسلاید و انیمیشن‌ها است.

پرسش‌های متداول

آیا می‌توانم کنترل کنم که انیمیشن‌های اشیا و انتقال اسلایدها در HTML5 اجرا شوند یا نه؟

بله، صادرات HTML5 گزینه‌های جداگانه‌ای برای فعال یا غیرفعال کردن shape animations و slide transitions فراهم می‌کند.

آیا نظرات پشتیبانی می‌شوند و می‌توان آن‌ها را نسبت به اسلاید در چه موقعیتی قرار داد؟

بله، نظرات موجود می‌توانند در خروجی HTML5 گنجانده شوند و از طریق layout settings (مثلاً به سمت راست اسلاید) موقعیت‌یابی شوند.

آیا می‌توانم پیوندهایی که جاوااسکریپت فراخوانی می‌کنند به دلایل امنیتی یا CSP حذف کنم؟

بله، تنظیم setSkipJavaScriptLinks به شما امکان می‌دهد هنگام ذخیره‌سازی پیوندهای دارای فراخوانی‌های JavaScript را نادیده بگیرید. مقدار پیش‌فرض False است. برای مثال یک نمونه صادرات HTML5 و دامنه فیلتر را در حذف پیوندهای JavaScript هنگام صادرات ببینید. این تنظیم اسکریپت‌های استفاده‌شده توسط نمایشگر HTML5 برای ناوبری و انیمیشن‌ها را حذف نمی‌کند.