Converter apresentações PowerPoint para Markdown em .NET

Introdução

Aspose.Slides permite converter apresentações PowerPoint para Markdown, o que pode ser útil em fluxos de documentação, geração de sites estáticos, migração de conteúdo e publicação de texto sob controle de versão. A API oferece exportação direta de apresentações PPT e PPTX para arquivos MD e fornece opções adicionais para controlar como o conteúdo dos slides é representado no documento Markdown resultante.

Você pode exportar apresentações como Markdown simples, escolher entre vários sabores de Markdown, como CommonMark e GitHub Flavored Markdown, e configurar como as imagens são tratadas durante a exportação. Para apresentações que contêm conteúdo visual, Aspose.Slides também permite salvar imagens em uma pasta separada e referenciá‑las a partir do arquivo Markdown gerado.

Converter PowerPoint para Markdown

  1. Crie uma instância da classe Presentation para representar um objeto de apresentação.
  2. Use o método Save para salvar o objeto como um arquivo markdown.

Este código C# mostra como converter PowerPoint para markdown:

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

Converter PowerPoint para um Sabor de Markdown

Aspose.Slides permite converter PowerPoint para markdown (contendo sintaxe básica), CommonMark, GitHub flavored markdown, Trello, XWiki, GitLab e 17 outros sabores de markdown.

Este código C# mostra como converter PowerPoint para CommonMark:

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

Os 23 sabores de markdown suportados estão listados na enumeração Flavor da classe MarkdownSaveOptions.

Converter uma Apresentação que Contém Imagens para Markdown

A classe MarkdownSaveOptions fornece propriedades e enumerações que permitem usar determinadas opções ou configurações para o arquivo markdown resultante. O enum MarkdownExportType, por exemplo, pode ser definido com valores que determinam como as imagens são renderizadas ou tratadas: Sequential, TextOnly, Visual.

Converter Imagens Sequencialmente

Se desejar que as imagens apareçam individualmente, uma após a outra, no markdown resultante, escolha a opção sequencial. Este código C# mostra como converter uma apresentação que contém imagens para 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);
}

Converter Imagens Visualmente

Se deseja que as imagens apareçam juntas no markdown resultante, escolha a opção visual. Nesse caso, as imagens serão salvas no diretório atual da aplicação (e um caminho relativo será criado para elas no documento markdown), ou você pode especificar o caminho e o nome da pasta de sua preferência.

Este código C# demonstra a operação:

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
    });
}

Perguntas Frequentes

Os hiperlinks são mantidos na exportação para Markdown?

Sim. Texto hyperlinks são preservados como links Markdown padrão. Transições de slide transitions e animations não são convertidos.

Posso acelerar a conversão executando-a em múltiplas threads?

Você pode paralelizar por arquivos, mas don’t share a mesma instância de Presentation entre threads. Use instâncias/processos separados por arquivo para evitar contenção.

O que acontece com as imagens — onde são salvas e os caminhos são relativos?

Images são exportadas para uma pasta dedicada, e o arquivo Markdown as referencia com caminhos relativos por padrão. Você pode configurar o caminho base de saída e o nome da pasta de ativos para manter uma estrutura de repositório previsível.