Конвертировать презентации PowerPoint в Markdown в .NET

Преобразование PowerPoint в Markdown

  1. Создайте экземпляр класса Presentation для представления объекта презентации.
  2. Используйте метод [Save ]для сохранения объекта в файл markdown.

Этот C#‑код показывает, как преобразовать PowerPoint в markdown:

using (Presentation pres = new Presentation("pres.pptx"))
{
    pres.Save("pres.md", SaveFormat.Md);
}

Преобразование PowerPoint в варианты Markdown

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

Этот C#‑код показывает, как преобразовать PowerPoint в CommonMark:

using (Presentation pres = new Presentation("pres.pptx"))
{
    pres.Save("pres.md", SaveFormat.Md, new MarkdownSaveOptions
    {
        Flavor = Flavor.CommonMark
    });
}

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

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

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

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

Если вам нужно, чтобы изображения отображались одно за другим в полученном markdown, выберите последовательный вариант. Этот C#‑код показывает, как преобразовать презентацию с изображениями в markdown:

using (Presentation pres = new Presentation("pres.pptx"))
{
    MarkdownSaveOptions markdownSaveOptions = new MarkdownSaveOptions
    {
        ShowHiddenSlides = true,
        ShowSlideNumber = true,
        Flavor = Flavor.Github,
        ExportType = MarkdownExportType.Sequential,
        NewLineType = NewLineType.Windows
    };
    
    pres.Save("doc.md", new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, SaveFormat.Md, markdownSaveOptions);
}

Преобразование изображений визуально

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

Этот C#‑код демонстрирует операцию:

using (Presentation pres = new Presentation("pres.pptx"))
{
    const string outPath = "c:\\documents";
    pres.Save(Path.Combine(outPath, "pres.md"), SaveFormat.Md, new MarkdownSaveOptions
    { 
        ExportType = MarkdownExportType.Visual,
        ImagesSaveFolderName = "md-images",
        BasePath = outPath
    });
}

FAQ

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

Да. Текстовые hyperlinks сохраняются как стандартные ссылки Markdown. Слайды с transitions и animations не конвертируются.

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

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

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

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