Markdown a PDF con resaltado de código: cómo conservar los colores de sintaxis
Conservar los colores de sintaxis al convertir Markdown a PDF depende de toda la cadena de renderizado. El bloque de código debe indicar el lenguaje, el renderizador tiene que ejecutar un resaltador real y la exportación a PDF debe mantener el fondo, la fuente y los saltos de línea.
Para un documento puntual, la ruta más corta es MarkdownToImage Markdown to PDF: pega o sube el Markdown, revisa la vista previa, elige el tema, la fuente y el ancho del documento, y exporta. Para compilaciones automatizadas o muy personalizadas, usa md-to-pdf, VS Code Markdown PDF o Pandoc con ajustes explícitos.
La mayoría de los fallos se pueden reproducir. Empieza por estas tres comprobaciones:
- El bloque no declara el lenguaje. Un bloque abierto solo con tres acentos graves es texto preformateado. Añade
javascript,python,basho el lenguaje compatible más cercano tras la apertura. - Los gráficos de fondo están desactivados. Los temas de sintaxis suelen depender tanto del color del texto como del fondo del bloque. Una exportación desde navegador o Chromium puede conservar los tokens de color y eliminar el fondo.
- La vista previa y el PDF usan ajustes distintos. Otro renderizador, tema, fuente, ancho de página o CSS de impresión puede cambiar los colores y el ajuste de línea. Compara primero un ejemplo pequeño antes de procesar un documento largo.
No es útil culpar al formato PDF de forma genérica. Un PDF puede conservar texto en color; lo decisivo es qué renderizó la cadena de exportación antes de escribir el archivo.
Pega este bloque en el mismo documento y expórtalo antes del informe completo:
const palette = ["cyan", "amber", "coral"];
function renderStatus(format) {
return `${format}: ${palette.length} colors`;
}
console.log(renderStatus("PDF"));
Comprueba cinco detalles en la vista previa y en el PDF: color de palabras clave, color de cadenas, fondo del bloque de código, fuente monoespaciada y ajuste de la línea con la plantilla de texto. Si algo cambia, corrige el tema o la exportación antes de continuar.
La herramienta web genera el PDF en un entorno Chromium del servidor. Admite bloques con resaltado de sintaxis, fórmulas KaTeX, diagramas Mermaid, tablas, imágenes incrustadas y listas de tareas. La vista previa es la referencia: configura el tema, la fuente y el ancho, exporta y compara el fragmento de prueba.
Las exportaciones gratuitas incluyen actualmente una marca de agua. Una cuenta gratuita con sesión iniciada recibe cinco exportaciones sin marca de agua en total. Los precios y cupos pueden cambiar, así que consulta la página actual del convertidor antes de diseñar un flujo recurrente.
Es la mejor opción cuando quieres un resultado cuidado sin instalar herramientas locales.
md-to-pdf procesa Markdown con Marked, resalta el código mediante highlight.js y crea el PDF con Puppeteer/Chromium. El estilo predeterminado es GitHub, aunque se puede elegir otro de forma explícita.
md-to-pdf input.md --highlight-style github --pdf-options '{ "printBackground": true }'
La CLI es adecuada cuando el mismo documento debe reconstruirse desde un script o CI. Si un tema oscuro define un fondo, mantén activado printBackground. No proceses Markdown no fiable sin sanearlo; la propia documentación del proyecto lo señala como consideración de seguridad.
La extensión Markdown PDF exporta mediante un navegador basado en Chromium y usa highlight.js para los bloques de código. El resaltado está activado por defecto y el tema se configura de forma independiente con markdown-pdf.highlightStyle.
"markdown-pdf.highlightStyle": "github.css"
Después de cambiar el ajuste, vuelve a exportar el fragmento de prueba. La extensión utiliza actualmente highlight.js v11; algunos nombres antiguos de tema pueden haber cambiado o desaparecido. Elige un estilo vigente en lugar de asumir que un nombre anterior sigue disponible.
Pandoc utiliza Skylighting para los bloques que declaran un lenguaje. Las versiones actuales admiten --syntax-highlighting; la forma anterior --highlight-style está obsoleta.
pandoc input.md -o output.pdf --syntax-highlighting=pygments
Pandoc incluye estilos como kate, tango, zenburn y breezeDark, y también acepta archivos JSON .theme personalizados. Es una opción especialmente sólida si ya trabajas con plantillas Pandoc, citas o un flujo basado en LaTeX. La fuente y la paginación siguen dependiendo del motor PDF y de la plantilla, por lo que deben probarse aparte.
Imprimir como PDF una página Markdown ya renderizada puede funcionar, pero el resultado depende por completo de su CSS de impresión. Algunas páginas conservan colores y fondos; otras simplifican la presentación para papel. Activa los gráficos de fondo en el diálogo de impresión, revisa los saltos de página y compara el fragmento de prueba.
La impresión del navegador es útil cuando la página ya se ve bien. No es un proceso de compilación reproducible si no controlas también el HTML, el CSS, la versión del navegador y los ajustes de impresión.
- Indica el lenguaje en cada bloque de código.
- Para documentos que se imprimirán, prefiere un tema claro y de alto contraste.
- Activa los gráficos de fondo si el tema los necesita.
- Usa una fuente monoespaciada conocida y confirma que existe en el entorno de exportación.
- Comprueba las líneas largas con el ancho final A4 o Letter.
- Exporta primero el pequeño ejemplo JavaScript antes de procesar un informe largo.
- Sanea el Markdown procedente de usuarios o sistemas externos antes de enviarlo a un conversor local.
- Abre el PDF final y revisa colores, texto seleccionable, enlaces, imágenes y saltos de página.
Para comparar más herramientas, consulta cinco formas de convertir Markdown a PDF. Para compilaciones repetibles, sigue con la conversión por lotes mediante CLI, Pandoc y CI.
¿Por qué el código tiene color en la vista previa y aparece plano en el PDF?
Activa primero los gráficos de fondo. Después comprueba que la exportación use el mismo tema y renderizador que la vista previa. Una hoja de estilos de impresión también puede sustituir los colores de los tokens.
¿Qué tema conviene para un PDF imprimible?
Empieza con GitHub u otro tema claro. Normalmente seguirá siendo legible en color y escala de grises. Los temas oscuros pueden servir para PDFs de pantalla, pero hay que verificar el fondo y el contraste antes de compartirlos.
¿Puedo conservar los números de línea?
Solo si el renderizador o el tema los añade. Los bloques Markdown estándar no incluyen números de línea. Para un resultado determinista, usa una CLI o una hoja de estilos bajo tu control y prueba el ancho final de página.
¿Puedo convertir muchos archivos sin perder el resaltado?
Sí. Una CLI basada en Chromium mantiene un estilo web uniforme; Pandoc también puede usar un tema de sintaxis explícito. Fija la versión de la herramienta y el tema en CI para evitar cambios inesperados en compilaciones futuras.
Abre el convertidor Markdown to PDF de MarkdownToImage, pega el pequeño bloque JavaScript de esta guía y exporta un PDF. Compara la vista previa y el archivo en paralelo. Cuando coincidan colores, fondo, fuente y ajuste de línea, sustituye el ejemplo por tu documento real.