Convertir Markdown a DOCX

Convierte tus documentos Markdown a formato Word (DOCX) de forma sencilla

Conversor de Markdown a DOCX

Convierte tu Markdown a un documento Word (.docx) listo para descargar.

Cargando conversor...

La conversión de Markdown a DOCX (Microsoft Word) es útil cuando necesitas compartir documentos con personas que trabajan con Word o cuando necesitas un formato editable con formato enriquecido.

¿Por qué convertir Markdown a DOCX?

Estas son las principales razones para convertir Markdown a DOCX:

  • Colaboración: Muchos equipos trabajan con Microsoft Word.
  • Requisitos formales: Algunos entornos exigen documentos en Word.
  • Edición posterior: El DOCX permite edición sencilla con formato.
  • Compatibilidad: Word es uno de los formatos más extendidos.

Cómo convertir Markdown a DOCX

Con Pandoc

La forma más fiable es usar Pandoc:

pandoc archivo.md -o archivo.docx

Para usar una plantilla personalizada:

pandoc archivo.md -o archivo.docx --reference-doc=plantilla.docx

Herramientas online

Estas son algunas herramientas online para convertir Markdown a DOCX:

  • Dillinger: Exportación directa a varios formatos.
  • CloudConvert: Convertidor online con soporte para Markdown.
  • Writage: Plugin de Word que permite abrir archivos Markdown.

Aplicaciones de escritorio

Estas son algunas aplicaciones de escritorio para convertir Markdown a DOCX:

  • Typora: Exportación a DOCX integrada.
  • VS Code: Con la extensión Pandoc o Markdown PDF.
  • Obsidian: Con el plugin Pandoc.

Con JavaScript

// Usando html-docx-js
import { marked } from 'marked';
import htmlDocx from 'html-docx-js';

const html = marked.parse(markdownText);
const docx = htmlDocx.asBlob(html);

Personalizar estilos de Word

Usar un documento de referencia (reference-doc)

La forma más potente de personalizar el DOCX generado por Pandoc es usar un documento de referencia. Este es un archivo .docx que contiene los estilos que quieres aplicar al documento final.

Paso 1: Genera el documento de referencia base de Pandoc:

pandoc -o referencia.docx --print-default-data-file reference.docx

Paso 2: Abre referencia.docx en Microsoft Word o LibreOffice Writer y modifica los estilos:

  • Título 1, Título 2, etc.: Cambia la fuente, tamaño, color y espaciado de los encabezados.
  • Normal: Modifica el estilo del texto del cuerpo (fuente, interlineado, color).
  • Código fuente (Source Code): Ajusta el estilo de los bloques de código.
  • Cita (Block Text): Personaliza el aspecto de las citas (>).
  • Hipervínculo: Cambia el color y estilo de los enlaces.
  • Primer párrafo (First Paragraph): Estilo para el primer párrafo después de cada encabezado.

No cambies el texto del documento de referencia; solo modifica los estilos desde el panel de estilos de Word.

Paso 3: Usa el documento de referencia al convertir:

pandoc archivo.md -o archivo.docx --reference-doc=referencia.docx

Todos los documentos generados con esta referencia tendrán los mismos estilos corporativos, colores y tipografías.

Ejemplo: Documento con estilo corporativo

# Combinar metadatos, contenido y estilos corporativos
pandoc archivo.md -o informe.docx \
  --reference-doc=estilos-empresa.docx \
  --toc \
  --toc-depth=2 \
  --number-sections \
  -V lang=es

Automatizar la conversión

Si necesitas convertir varios archivos Markdown a DOCX de forma regular, puedes crear un script que automatice el proceso.

Script en Bash

#!/bin/bash
# convertir-a-docx.sh
# Convierte todos los archivos .md de una carpeta a .docx

DIRECTORIO_ENTRADA="./documentos"
DIRECTORIO_SALIDA="./docx"
REFERENCIA="./estilos/referencia.docx"

# Crear directorio de salida si no existe
mkdir -p "$DIRECTORIO_SALIDA"

# Recorrer todos los archivos .md
for archivo in "$DIRECTORIO_ENTRADA"/*.md; do
  nombre=$(basename "$archivo" .md)
  echo "Convirtiendo: $nombre.md -> $nombre.docx"

  pandoc "$archivo" -o "$DIRECTORIO_SALIDA/$nombre.docx" \
    --reference-doc="$REFERENCIA" \
    --toc \
    --number-sections

  if [ $? -eq 0 ]; then
    echo "  ✓ Completado"
  else
    echo "  ✗ Error al convertir $nombre.md"
  fi
done

echo "Conversión finalizada."

Hazlo ejecutable y úsalo:

chmod +x convertir-a-docx.sh
./convertir-a-docx.sh

Script en Node.js con Pandoc

Si prefieres JavaScript, puedes usar el paquete node-pandoc o ejecutar Pandoc directamente con child_process:

import { execSync } from 'child_process';
import { readdirSync } from 'fs';
import path from 'path';

const dirEntrada = './documentos';
const dirSalida = './docx';
const referencia = './estilos/referencia.docx';

const archivos = readdirSync(dirEntrada).filter(f => f.endsWith('.md'));

for (const archivo of archivos) {
  const nombre = path.basename(archivo, '.md');
  const entrada = path.join(dirEntrada, archivo);
  const salida = path.join(dirSalida, `${nombre}.docx`);

  console.log(`Convirtiendo: ${archivo}`);

  try {
    execSync(`pandoc "${entrada}" -o "${salida}" --reference-doc="${referencia}"`);
    console.log(`  Completado: ${nombre}.docx`);
  } catch (error) {
    console.error(`  Error al convertir ${archivo}: ${error.message}`);
  }
}

Limitaciones y soluciones

LimitaciónDescripciónSolución
Estilos limitadosMarkdown tiene menos opciones de formato que WordUsa un --reference-doc con los estilos que necesites predefinidos
ImágenesLas rutas relativas pueden fallarUsa rutas absolutas o ejecuta Pandoc desde el directorio donde están las imágenes
Tablas complejasCeldas combinadas, anchos personalizados no se soportanUsa tablas de Pandoc con sintaxis de grid tables para más control
HTML incrustadoEl HTML dentro de Markdown se pierde en la conversión a DOCXUsa sintaxis nativa de Pandoc Markdown en lugar de HTML
Fórmulas matemáticasLaTeX math puede no renderizarse correctamentePandoc convierte fórmulas a OMML (formato nativo de Word) con --mathml
Colores de textoMarkdown no tiene sintaxis para coloresUsa el documento de referencia para definir estilos con colores, o añade spans con atributos de Pandoc: [texto rojo]{custom-style="Rojo"}
Saltos de páginaNo hay forma estándar en MarkdownPandoc soporta \newpage que se traduce en un salto de página en DOCX

Tablas de grid en Pandoc

Para tablas más complejas con anchos de columna personalizados, puedes usar la sintaxis de grid tables de Pandoc:

+---------------+---------------+--------------------+
| Fruta         | Precio        | Ventajas           |
+===============+===============+====================+
| Manzana       | 1.50 €        | Rica en fibra      |
|               |               | y vitamina C       |
+---------------+---------------+--------------------+
| Plátano       | 0.80 €        | Alto en potasio    |
+---------------+---------------+--------------------+

Estas tablas permiten celdas con múltiples líneas de texto y se convierten correctamente a DOCX.

👋 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. 😊