Converter apresentações PowerPoint para Markdown em PHP

Introdução

Aspose.Slides permite converter apresentações do PowerPoint para Markdown, o que pode ser útil para fluxos de trabalho de documentação, geração de sites estáticos, migração de conteúdo e publicação de texto versionado. 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 puro, escolher entre múltiplos 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 uma Apresentação para Markdown

Esta seção explica como Aspose.Slides converte apresentações PowerPoint e OpenDocument (PPT, PPTX, ODP) em Markdown limpo, preservando a hierarquia original dos slides, o texto e a formatação principal, para que você possa reutilizar o conteúdo em documentação ou fluxos de trabalho versionados sem esforço manual adicional.

  1. Crie uma instância da classe Apresentação para representar a apresentação.
  2. Use o método save para exportá‑la como um arquivo Markdown.
$presentation = new Presentation("presentation.pptx");
try {
    $presentation->save("presentation.md", SaveFormat::Md);
} finally {
    $presentation->dispose();
}

Converter uma Apresentação para um Sabor de Markdown

Aspose.Slides permite converter apresentações PowerPoint para Markdown com sintaxe básica, bem como para CommonMark, GitHub‑flavored Markdown, Trello, XWiki, GitLab e dezessete outros sabores de Markdown.

O código PHP a seguir demonstra como converter uma apresentação PowerPoint para CommonMark:

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

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

Os 23 sabores de Markdown suportados estão listados na enumeração Flavor.

Converter uma Apresentação contendo Imagens para Markdown

A classe MarkdownSaveOptions expõe propriedades e enumerações que permitem configurar o arquivo Markdown resultante. Por exemplo, a enumeração MarkdownExportType especifica como as imagens são tratadas: Sequential, TextOnly ou Visual.

Converter Imagens Sequencialmente

Se desejar que as imagens apareçam individualmente, uma após a outra, no Markdown resultante, escolha a opção Sequential. O código PHP a seguir mostra como converter uma apresentação contendo imagens para 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();
}

Converter Imagens Visualmente

Se desejar que as imagens apareçam juntas no Markdown resultante, escolha a opção Visual. Nesse caso, as imagens são salvas no diretório atual da aplicação (e um caminho relativo é gerado para elas no documento Markdown), ou você pode especificar o diretório e o nome da pasta de sua preferência.

O código PHP a seguir demonstra a operação:

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

Perguntas Frequentes

Os hyperlinks sobrevivem à exportação para Markdown?

Sim. Textos hyperlinks são preservados como links Markdown padrão. Slide transitions e animations não são convertidos.

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

É possível paralelizar por arquivos, mas não compartilhar a mesma Apresentação 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 de saída base e o nome da pasta de ativos para manter uma estrutura de repositório previsível.