Конвертировать презентации PowerPoint в HTML в Node.js

Обзор

Aspose.Slides for Node.js via Java может сохранять презентации PowerPoint в виде HTML без Microsoft PowerPoint. Основное преобразование состоит из единичной загрузки Presentation и вызова save с SaveFormat. Используйте HtmlOptions, когда необходимо управлять экспортируемым макетом, шрифтами, изображениями, заметками, комментариями, выводом SVG или связанными ресурсами.

Это руководство сосредоточено на практических сценариях экспорта в HTML:

  • Экспорт всей презентации или выбранных слайдов.
  • Генерация HTML фиксированного макета, адаптивного или основанного на SVG.
  • Включение заметок выступающего и комментариев.
  • Управление качеством изображений и данными обрезанных изображений.
  • Встраивание шрифтов или отдельное сохранение файлов шрифтов.
  • Выбор способа записи и ссылки на внешние ресурсы и медиафайлы.

По умолчанию экспорт в HTML создаёт автономный HTML‑документ, в котором большинство ресурсов внедрено. Это удобно для обмена одним файлом, но может увеличить размер вывода. Для публикации в вебе рассмотрите возможность использования внешних ресурсов, снижения DPI изображений и встраивания только тех шрифтов, которые недоступны в целевой среде.

Преобразовать презентацию в HTML

Чтобы экспортировать презентацию в HTML, загрузите её с помощью Presentation и сохраните с помощью SaveFormat.Html.

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    presentation.save("presentation.html", aspose.slides.SaveFormat.Html);
} finally {
    presentation.dispose();
}

В этом примере записывается один HTML‑файл. Объект презентации освобождается в блоке finally, что закрывает файловые дескрипторы и освобождает ресурсы рендеринга после экспорта.

Использовать HtmlOptions

HtmlOptions — основной класс конфигурации экспорта в HTML. Распространённые параметры включают:

  • SlidesLayoutOptions: добавляет заметки, комментарии, раздаточные материалы или другую информацию о макете.
  • HtmlFormatter: изменяет структуру HTML‑документа или делегирует форматирование контроллеру.
  • SlideImageFormat: изменяет способ представления слайдов, например как SVG.
  • PicturesCompression: контролирует DPI изображений и размер вывода.
  • DeletePicturesCroppedAreas: сохраняет или удаляет данные обрезанных изображений.
  • SvgResponsiveLayout: заставляет экспортированный SVG‑контент адаптироваться к своему контейнеру.
  • ShowHiddenSlides: включает скрытые слайды при необходимости.

В следующих разделах показаны наиболее часто используемые параметры отдельно, чтобы вы могли комбинировать только те, которые нужны вашему рабочему процессу.

Экспорт выбранных слайдов в HTML

Перегрузка Presentation.save, принимающая номера слайдов, использует 1‑based индексацию. Цикл ниже сохраняет каждый слайд в отдельный HTML‑файл.

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let slideCount = presentation.getSlides().size();

    for (let slideIndex = 0; slideIndex < slideCount; slideIndex++) {
        let slideNumber = slideIndex + 1;
        let slideNumbers = java.newArray("int", [slideNumber]);
        let htmlFileName = "slide-" + slideNumber + ".html";

        presentation.save(htmlFileName, slideNumbers, aspose.slides.SaveFormat.Html);
    }
} finally {
    presentation.dispose();
}

Используйте этот шаблон, когда веб‑сайт или приложение требует одну HTML‑страницу на каждый слайд. Если каждый слайд должен иметь одинаковый макет, создайте один экземпляр HtmlOptions и передавайте его каждому вызову save.

Создание адаптивного HTML

ResponsiveHtmlController обеспечивает адаптивный вывод HTML через HtmlFormatter. Используйте его, когда экспортируемая страница должна лучше подстраиваться под ширину браузера.

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let controller = new aspose.slides.ResponsiveHtmlController();
    let formatter = aspose.slides.HtmlFormatter.createCustomFormatter(controller);

    let htmlOptions = new aspose.slides.HtmlOptions();
    htmlOptions.setHtmlFormatter(formatter);

    presentation.save("presentation-responsive.html", aspose.slides.SaveFormat.Html, htmlOptions);
} finally {
    presentation.dispose();
}

Для адаптивного макета на основе SVG задайте SvgResponsiveLayout в HtmlOptions. Это полезно, когда содержимое слайда экспортируется как масштабируемая SVG‑разметка.

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let htmlOptions = new aspose.slides.HtmlOptions();
    htmlOptions.setSvgResponsiveLayout(true);

    presentation.save("presentation-svg-responsive.html", aspose.slides.SaveFormat.Html, htmlOptions);
} finally {
    presentation.dispose();
}

Включить заметки выступающего и комментарии

Используйте [NotesCommentsLayoutingOptions](https://reference.aspose.com/slides/ru/nodejs-java/aspose.slides/notescommentslayout