Pandoc: convertir Markdown a Word, PDF, EPUB y cualquier formato

Tutorial completo de Pandoc en español. Instalación, comandos básicos, plantillas y ejemplos para convertir Markdown a DOCX, PDF, EPUB, HTML y más.

Pandoc es el conversor de documentos más potente que existe. Una sola herramienta, gratuita y de código abierto, capaz de convertir Markdown a Word, PDF, EPUB, HTML, LaTeX, presentaciones, libros y casi cualquier formato de documento. Si trabajas con Markdown y necesitas entregar en otros formatos, Pandoc te ahorra horas cada semana.

Qué es Pandoc

Pandoc es una herramienta de línea de comandos creada por John MacFarlane, profesor de filosofía en Berkeley. Su filosofía es simple: lee un documento en un formato, lo convierte a una representación intermedia, y lo escribe en otro formato. Soporta decenas de formatos de entrada y salida, y Markdown es uno de los más usados.

Frente a conversores online que cubren casos puntuales, Pandoc tiene tres ventajas:

  • Funciona sin conexión: tus documentos nunca salen de tu máquina.
  • Es scriptable: integrable en pipelines, GitHub Actions o scripts personales.
  • Soporta plantillas: puedes definir estilos consistentes para todas las conversiones.

Instalación

Windows

Descarga el instalador .msi desde pandoc.org/installing y ejecútalo. También puedes instalarlo con Chocolatey:

choco install pandoc

O con winget:

winget install --id JohnMacFarlane.Pandoc

macOS

Con Homebrew:

brew install pandoc

Linux

En Debian, Ubuntu y derivadas:

sudo apt install pandoc

En Fedora:

sudo dnf install pandoc

Verificar la instalación

Comprueba que está instalado correctamente:

pandoc --version

Si quieres generar PDFs, además necesitas una distribución de LaTeX. Las más comunes son TeX Live (multiplataforma) y MiKTeX (Windows). En macOS, BasicTeX es una versión ligera suficiente para Pandoc:

brew install --cask basictex

Conversiones básicas

La sintaxis general es muy intuitiva:

pandoc entrada.md -o salida.formato

Pandoc deduce los formatos por la extensión. Estos son los casos más comunes.

Markdown a Word (DOCX)

pandoc documento.md -o documento.docx

El .docx resultante se abre en Microsoft Word, LibreOffice o Google Docs. Encabezados, listas, tablas, citas y código se traducen al estilo nativo de Word.

Markdown a PDF

pandoc documento.md -o documento.pdf

Necesita LaTeX instalado. Por defecto usa el motor pdflatex. Para documentos con caracteres especiales (chino, árabe, emojis) usa XeLaTeX:

pandoc documento.md --pdf-engine=xelatex -o documento.pdf

Markdown a HTML

pandoc documento.md -o documento.html

Por defecto genera un HTML fragmento. Si quieres un archivo HTML completo con <head> y estilos:

pandoc documento.md -s -o documento.html

El flag -s (standalone) añade la estructura HTML completa.

Markdown a EPUB

pandoc documento.md -o libro.epub

Pandoc genera un EPUB válido listo para Kindle, Kobo y cualquier lector. Para añadir metadatos:

pandoc libro.md \
  --metadata title="Mi libro" \
  --metadata author="Tu nombre" \
  --metadata lang="es" \
  -o libro.epub

Markdown a presentaciones

Pandoc puede generar presentaciones HTML (reveal.js, S5, Slidy) o PowerPoint:

pandoc presentacion.md -t pptx -o presentacion.pptx
pandoc presentacion.md -t revealjs -s -o presentacion.html

Pandoc divide en diapositivas según el --slide-level (por defecto, el primer nivel de encabezado que va seguido de contenido). En la mayoría de Markdown con # como título y ## como secciones, cada ## se convierte en una diapositiva. Puedes forzarlo con --slide-level=2. Más detalle en la página de conversor de Markdown a slides.

Casos prácticos

Generar un PDF con índice y portada

Crea un Markdown con frontmatter YAML para los metadatos:

---
title: "Manual de usuario"
author: "Equipo de documentación"
date: "2026-05-11"
lang: es
toc: true
toc-depth: 2
---

# Introducción

Este manual describe...

# Instalación

...

Convierte con:

pandoc manual.md --toc --pdf-engine=xelatex -o manual.pdf

El flag --toc inserta la tabla de contenidos automáticamente a partir de los encabezados.

Convertir varios archivos en uno solo

Pandoc acepta múltiples archivos de entrada y los concatena en orden:

pandoc cap1.md cap2.md cap3.md -o libro.pdf

Útil para libros, tesis o documentación dividida en capítulos.

Usar una plantilla de Word

Si tu empresa tiene una plantilla de Word con estilos definidos, dile a Pandoc que la use como referencia:

pandoc documento.md --reference-doc=plantilla.docx -o salida.docx

Pandoc respeta los estilos Heading 1, Heading 2, Normal, etc. de tu plantilla. Cambia colores, tipografías y márgenes editando la plantilla, no el comando.

Convertir HTML a Markdown

Pandoc no solo escribe Markdown, también lo lee desde otros formatos. Para extraer Markdown de una página HTML:

pandoc pagina.html -o pagina.md

O directamente desde una URL:

pandoc -f html -t markdown -o articulo.md https://ejemplo.com/articulo

Para más opciones online, mira el conversor de HTML a Markdown.

Convertir DOCX a Markdown

Operación inversa, útil si recibes documentos en Word y quieres editarlos como texto plano:

pandoc documento.docx -o documento.md

Las imágenes se extraen a una carpeta media/ por defecto. Puedes cambiarla:

pandoc documento.docx --extract-media=./imagenes -o documento.md

Configuración avanzada

Filtros

Los filtros de Pandoc permiten transformar el documento durante la conversión. Por ejemplo, pandoc-crossref añade referencias cruzadas estilo LaTeX:

pandoc documento.md --filter pandoc-crossref -o documento.pdf

Variables de plantilla

Puedes pasar variables que las plantillas usan:

pandoc tesis.md \
  -V geometry:margin=2.5cm \
  -V fontsize=11pt \
  -V mainfont="Liberation Serif" \
  --pdf-engine=xelatex \
  -o tesis.pdf

Bibliografía

Pandoc gestiona citas y bibliografía con archivos BibTeX o CSL JSON:

pandoc articulo.md \
  --citeproc \
  --bibliography=referencias.bib \
  --csl=apa.csl \
  -o articulo.pdf

Las citas en el Markdown se escriben [@autor2023] y Pandoc las convierte al estilo de citación que elijas (APA, IEEE, Chicago, MLA).

Pandoc en pipelines

GitHub Actions

Puedes automatizar la generación de PDFs en cada commit. Ejemplo de workflow:

name: Build PDF

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: docker://pandoc/latex:latest
        with:
          args: documento.md --toc -o documento.pdf
      - uses: actions/upload-artifact@v4
        with:
          name: pdf
          path: documento.pdf

Cada push genera un PDF nuevo y lo deja descargable como artefacto. Más ideas en automatizar tareas con Markdown.

Script reutilizable

Si conviertes los mismos formatos a menudo, escribe un script. Ejemplo en bash:

#!/bin/bash
# build.sh
pandoc documento.md --toc --pdf-engine=xelatex -o build/documento.pdf
pandoc documento.md -o build/documento.docx
pandoc documento.md -s -o build/documento.html
echo "Listo: PDF, DOCX y HTML en ./build"

Lo ejecutas con ./build.sh y obtienes los tres formatos de golpe.

Limitaciones de Pandoc

  • Curva de aprendizaje: la documentación oficial es enorme. Empieza por casos concretos y ve añadiendo opciones.
  • PDFs complejos: para diseños muy visuales (revistas, brochures) LaTeX puede quedarse corto. Mejor herramientas tipo InDesign.
  • Tablas complejas: tablas con celdas combinadas en formatos antiguos pueden perder formato.
  • No es WYSIWYG: Pandoc es CLI. Si necesitas vista previa visual mientras editas, combínalo con un editor como VS Code y un previsualizador.

Recursos relacionados

👋 Hola! Soy Edu, me encanta crear cosas y he redactado este tutorial. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirlo en Twitter.

para estar al día con mi contenido. 😊