Convertir presentaciones de PowerPoint a Markdown en .NET

Convertir PowerPoint a Markdown

  1. Crea una instancia de la clase Presentation para representar un objeto de presentación.
  2. Utiliza el método Save para guardar el objeto como un archivo markdown.

Este código C# muestra cómo convertir PowerPoint a markdown:

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

Convertir PowerPoint a un sabor de Markdown

Aspose.Slides permite convertir PowerPoint a markdown (con sintaxis básica), CommonMark, markdown con sabor de GitHub, Trello, XWiki, GitLab y 17 sabores de markdown adicionales.

Este código C# muestra cómo convertir PowerPoint a CommonMark:

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

Los 23 sabores de markdown compatibles se enumeran bajo la enumeración Flavor de la clase MarkdownSaveOptions.

Convertir una presentación que contiene imágenes a Markdown

La clase MarkdownSaveOptions proporciona propiedades y enumeraciones que permiten usar ciertas opciones o configuraciones para el archivo markdown resultante. El enum MarkdownExportType se puede establecer en valores que determinan cómo se renderizan o manejan las imágenes: Sequential, TextOnly, Visual.

Convertir imágenes secuencialmente

Si deseas que las imágenes aparezcan individualmente una tras otra en el markdown resultante, debes elegir la opción secuencial. Este código C# muestra cómo convertir una presentación que contiene imágenes a 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);
}

Convertir imágenes visualmente

Si deseas que las imágenes aparezcan juntas en el markdown resultante, debes elegir la opción visual. En este caso, las imágenes se guardarán en el directorio actual de la aplicación (y se construirá una ruta relativa para ellas en el documento markdown), o puedes especificar la ruta y el nombre de carpeta que prefieras.

Este código C# demuestra la operación:

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

¿Los hipervínculos sobreviven a la exportación a Markdown?

Sí. Los hipervínculos de texto se conservan como enlaces Markdown estándar. Las transiciones y animaciones de diapositivas no se convierten.

¿Puedo acelerar la conversión ejecutándola en varios hilos?

Puedes paralelizar entre archivos, pero no compartas la misma instancia de Presentation entre hilos. Usa instancias/procesos separados por archivo para evitar contención.

¿Qué ocurre con las imágenes, dónde se guardan y son las rutas relativas?

Las imágenes se exportan a una carpeta dedicada, y el archivo Markdown las referencia con rutas relativas por defecto. Puedes configurar la ruta base de salida y el nombre de la carpeta de recursos para mantener una estructura de repositorio predecible.