Преобразовать презентации в HTML5 с помощью PHP

Обзор

В этой статье объясняется, как преобразовать презентации PowerPoint в HTML5 с помощью Aspose.Slides for PHP via Java. Описываются базовый экспорт, управление анимацией фигур и переходами между слайдами, а также расположение комментариев. Также сравниваются результаты HTML5 с выводом в формате SVG, получаемым при стандартном экспорте в HTML.

Экспорт PowerPoint в HTML5

В следующем примере презентация загружается из рабочего каталога и сохраняется в формате HTML5. Используются настройки экспорта по умолчанию; следующий пример показывает, как явно управлять воспроизведением анимации. Замените путь входного файла на путь к вашей презентации.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("pres.pptx");
try {
    $presentation->save("pres.html", SaveFormat::Html5);
} finally {
    $presentation->dispose();
}

Чтобы выполнить экспорт без воспроизведения анимаций фигур или переходов между слайдами, передайте false в setAnimateShapes и setAnimateTransitions в Html5Options. Эти параметры независимы, поэтому можно включить один, отключив другой. Пример экспортирует презентацию с отключёнными обоими типами анимации в сгенерированной странице.

use aspose\slides\Html5Options;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$html5Options = new Html5Options();
$html5Options->setAnimateShapes(false);
$html5Options->setAnimateTransitions(false);

$presentation = new Presentation("pres.pptx");
try {
    $presentation->save("pres5.html", SaveFormat::Html5, $html5Options);
} finally {
    $presentation->dispose();
}

Экспорт PowerPoint в HTML

Стандартный экспорт в HTML использует иной подход к визуализации: содержимое слайда представлено в виде SVG внутри HTML‑страницы. В следующем примере презентация преобразуется в HTML‑документ с использованием этого подхода.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new 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‑документ в браузере при наличии поддерживающих файлов.

use aspose\slides\Html5Options;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$html5Options = new Html5Options();
$html5Options->setAnimateShapes(true);
$html5Options->setAnimateTransitions(true);

$presentation = new Presentation("pres.pptx");
try {
    $presentation->save("HTML5-slide-view.html", SaveFormat::Html5, $html5Options);
} finally {
    $presentation->dispose();
}

Преобразование презентации в документ HTML5 с комментариями

Вы можете включить существующие комментарии к слайдам в вывод HTML5, чтобы читатели могли видеть обратную связь рядом с содержимым слайда. Пример в этом разделе предполагает, что исходная презентация содержит комментарии, как показано ниже. Он экспортирует эти комментарии; новые комментарии не создаются.

Два комментария на слайде презентации

Передайте объект NotesCommentsLayoutingOptions в метод setSlidesLayoutOptions класса Html5Options. Используйте setCommentsPosition, чтобы выбрать Right из перечисления CommentsPositions и разместить комментарии справа от каждого слайда.

Следующий пример экспортирует презентацию в HTML5 с такой компоновкой комментариев. Презентация без комментариев не будет иметь текста комментариев для отображения.

use aspose\slides\CommentsPositions;
use aspose\slides\Html5Options;
use aspose\slides\NotesCommentsLayoutingOptions;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$layoutOptions = new NotesCommentsLayoutingOptions();
$layoutOptions->setCommentsPosition(CommentsPositions::Right);

$html5Options = new Html5Options();
$html5Options->setSlidesLayoutOptions($layoutOptions);

$presentation = new Presentation("sample.pptx");
try {
    $presentation->save("output.html", SaveFormat::Html5, $html5Options);
} finally {
    $presentation->dispose();
}

Изображение ниже показывает экспортированный документ HTML5 с комментариями, отображаемыми рядом со слайдом.

Комментарии в выводимом документе HTML5

Исключение гиперссылок JavaScript при экспорте

Предположим, файл hyperlinks.pptx содержит связанный текст с целью javascript:alert('Hello') и обычную ссылку https://example.com/. Чтобы исключить гиперссылку JavaScript при экспорте, передайте true в SaveOptions::setSkipJavaScriptLinks. По умолчанию значение false, поэтому такие ссылки не фильтруются, если вы не включите параметр.

В следующем примере презентация загружается из рабочего каталога и экспортируется с помощью Html5Options:

use aspose\slides\Html5Options;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$html5Options = new Html5Options();
$html5Options->setSkipJavaScriptLinks(true);

$presentation = new Presentation("hyperlinks.pptx");
try {
    $presentation->save("filtered-html5.html", SaveFormat::Html5, $html5Options);
} finally {
    $presentation->dispose();
}

Экспортированный файл опускает JavaScript‑гиперссылку, сохранив её текст и обычную HTTPS‑ссылку. Исходная презентация остаётся неизменной.

Эта опция фильтрует гиперссылки JavaScript; она не удаляет все скрипты или другое активное содержимое и не гарантирует соответствие CSP. Например, вывод HTML5 всё равно включает скрипты для навигации по слайдам и анимаций.

FAQ

Можно ли управлять тем, будут ли проигрываться анимации объектов и переходы между слайдами в HTML5?

Да, экспорт в HTML5 предоставляет отдельные параметры для включения или отключения shape animations и slide transitions.

Поддерживаются ли комментарии и где их можно разместить относительно слайда?

Да, существующие комментарии можно включить в вывод HTML5 и расположить (например, справа от слайда) через layout settings для заметок и комментариев.

Можно ли пропустить ссылки, вызывающие JavaScript, по соображениям безопасности или CSP?

Да, настройка setSkipJavaScriptLinks позволяет пропустить гиперссылки с вызовами JavaScript при сохранении. По умолчанию значение false. Смотрите Exclude JavaScript Hyperlinks During Export для примера экспорта в HTML5 и области действия фильтра. Эта настройка не удаляет JavaScript, используемый просмотрщиком HTML5 для навигации и анимаций.