Конвертация презентаций PowerPoint в Markdown на PHP

Обзор

Aspose.Slides for PHP via Java позволяет конвертировать содержимое презентаций в Markdown, позволяя повторно использовать файлы PowerPoint (PPT, PPTX) и OpenDocument (ODP) для вики, Git‑репозиториев и генераторов статических сайтов. API сохраняет иерархию слайдов, создавая лёгкий, удобочитаемый Markdown, что позволяет автоматизировать конвейеры документирования и держать исходные презентации и файлы Markdown в идеальном согласовании.

Поддержка конвертации PowerPoint‑to‑Markdown была реализована в Aspose.Slides 23.7.

Конвертировать презентацию в Markdown

Этот раздел объясняет, как Aspose.Slides конвертирует презентации PowerPoint и OpenDocument (PPT, PPTX, ODP) в чистый Markdown, сохраняя оригинальную иерархию слайдов, текст и базовое форматирование, чтобы вы могли повторно использовать контент в документации или в рабочих процессах с контролем версий без дополнительных ручных усилий.

  1. Создайте экземпляр класса Presentation для представления презентации.
  2. Используйте метод save, чтобы экспортировать его как файл Markdown.

Этот PHP‑код показывает, как конвертировать презентацию PowerPoint в Markdown:

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

Конвертировать презентацию в вариант Markdown

Aspose.Slides позволяет конвертировать презентации PowerPoint в Markdown с базовым синтаксисом, а также в CommonMark, GitHub‑flavored Markdown, Trello, XWiki, GitLab и семнадцать других вариантов Markdown.

Следующий PHP‑код демонстрирует, как конвертировать презентацию PowerPoint в CommonMark:

$presentation = new Presentation("presentation.pptx");
try {
    $saveOptions = new MarkdownSaveOptions();
    $saveOptions->setFlavor(Flavor->CommonMark);

    $presentation->save("presentation.md", SaveFormat::Md, $saveOptions);
} finally {
    $presentation->dispose();
}

23 поддерживаемых варианта Markdown перечислены в Flavor enumeration.

Конвертировать презентацию с изображениями в Markdown

Класс MarkdownSaveOptions раскрывает свойства и перечисления, позволяющие настроить результирующий файл Markdown. Например, перечисление MarkdownExportType задаёт, как обрабатывать изображения: Sequential, TextOnly или Visual.

Конвертировать изображения последовательно

Если вы хотите, чтобы изображения появлялись по отдельности, одно за другим, в результирующем Markdown, выберите опцию Sequential. Следующий PHP‑код показывает, как конвертировать презентацию с изображениями в Markdown:

$presentation = new Presentation("presentation.pptx");
try {
    $saveOptions = new MarkdownSaveOptions();
    $saveOptions->setShowHiddenSlides(true);
    $saveOptions->setShowSlideNumber(true);
    $saveOptions->setFlavor(Flavor->Github);
    $saveOptions->setExportType(MarkdownExportType::Sequential);
    $saveOptions->setNewLineType(NewLineType::Windows);

    $slideIndices = array(1, 2, 3, 4);
    $presentation->save("presentation.md", $slideIndices, SaveFormat::Md, $saveOptions);
} finally {
    $presentation->dispose();
}

Конвертировать изображения визуально

Если вы хотите, чтобы изображения появлялись вместе в результирующем Markdown, выберите опцию Visual. В этом случае изображения сохраняются в текущий каталог приложения (и для них генерируется относительный путь в документе Markdown), либо вы можете указать предпочтительный каталог и имя папки.

Следующий PHP‑код демонстрирует эту операцию:

$presentation = new Presentation("presentation.pptx");
try {
    $outPath = "c:/documents";

    $saveOptions = new MarkdownSaveOptions();
    $saveOptions->setExportType(MarkdownExportType::Visual);
    $saveOptions->setImagesSaveFolderName("md-images");
    $saveOptions->setBasePath($outPath);

    $presentation->save("presentation.md", SaveFormat::Md, $saveOptions);
} finally {
    $presentation->dispose();
}

Часто задаваемые вопросы

Сохраняются ли гиперссылки при экспорте в Markdown?

Да. Текстовые гиперссылки сохраняются как стандартные ссылки Markdown. Переходы и анимации слайдов не конвертируются.

Могу ли я ускорить конвертацию, запустив её в нескольких потоках?

Можно выполнять параллельную обработку файлов, но не делитесь одним и тем же экземпляром Presentation между потоками. Используйте отдельные экземпляры/процессы для каждого файла, чтобы избежать конфликтов.

Что происходит с изображениями — где они сохраняются и являются ли пути относительными?

Изображения экспортируются в отдельную папку, а файл Markdown по умолчанию ссылается на них относительными путями. Вы можете настроить базовый путь вывода и имя папки ресурсов, чтобы поддерживать предсказуемую структуру репозитория.