Printdown

Como converter Markdown para PDF: 4 formas grátis

Por ·

Escrever em Markdown é prático, mas quem está esperando o seu documento quase sempre quer um PDF. Há muitas formas de converter Markdown para PDF, e elas são mais diferentes do que o rótulo “md para PDF” sugere: algumas só precisam de um navegador, outras de uma instalação completa de LaTeX; algumas desenham diagramas e fórmulas, outras os imprimem como código. Este guia compara quatro métodos gratuitos e mostra o passo a passo de cada um.

Resposta curta: o jeito mais rápido é abrir o editor de Markdown para PDF, colar seu Markdown ou abrir o arquivo .md, clicar em Baixar PDF e escolher Salvar como PDF na janela de impressão. Não é preciso instalar nada, e o PDF tem texto real e selecionável. Se você converte muitos arquivos, trabalha com scripts ou precisa de um sumário, use o Pandoc ou o md-to-pdf; se escreve no VS Code, uma extensão faz isso dentro do editor.

Os quatro métodos lado a lado

Navegador (Printdown)PandocVS Code + Markdown PDFmd-to-pdf
InstalaçãoNenhumaPandoc mais LaTeX ou outro motor de PDFVS Code e uma extensãoNode.js; baixa o Chrome na instalação
Texto selecionávelSim (PDF rápido: não)SimSimSim
Diagramas MermaidSimCom um filtroSim, carregado de um CDNNão integrados
FórmulasSim (KaTeX)Sim (LaTeX)Sim (KaTeX)Não integradas
Números de página, sumárioNúmeros só com os cabeçalhos do navegador; sem sumárioAmbosNúmeros por padrão; sem sumárioNúmeros com um modelo de rodapé; sem sumário
OfflineDepois que a página carregaSimSim, exceto Mermaid e PlantUMLSim, depois de instalado
PrivacidadeRoda na sua aba; nada é enviadoLocalLocal; diagramas PlantUML vão para um servidorLocal
Ideal paraDocumentos pontuais, PDFs formatados, qualquer computadorDocumentos longos ou acadêmicos, automaçãoQuem já escreve no VS CodeScripts, CI e estilos com CSS

1. No navegador com o Printdown

É o método que este site oferece. A renderização e a criação do PDF acontecem na sua aba, então funciona em um Chromebook ou em um notebook corporativo onde você não pode instalar programas, e o documento nunca é enviado.

  1. Abra o editor de Markdown para PDF.
  2. Cole seu Markdown no painel da esquerda ou clique em Abrir arquivo .md (.markdown e .txt também funcionam). A pré-visualização da direita se atualiza enquanto você digita.
  3. Clique em Estilo para escolher um dos seis temas, as cores do texto, dos títulos e dos links, um tamanho de fonte de 9 a 14 pt, A4 ou Carta, e margens Estreitas, Normais ou Largas.
  4. Clique em Baixar PDF. A janela de impressão do navegador se abre.
  5. Escolha Salvar como PDF como destino, desative Cabeçalhos e rodapés e salve. O nome sugerido do arquivo vem do primeiro título.

O editor suporta tabelas no estilo do GitHub, listas de tarefas, notas de rodapé e código com destaque de sintaxe, além de diagramas Mermaid e fórmulas LaTeX. Para pular a janela, Mais → PDF rápido (imagem) baixa o arquivo com um clique, mas cada página vira uma imagem: o texto não pode ser selecionado nem pesquisado.

Os limites, sem rodeios: não há opção de números de página nem de sumário (os cabeçalhos e rodapés do navegador adicionam números de página, mas também a data, o título e o endereço da página); as páginas são só em retrato; uma página web não consegue ler imagens do seu disco, então caminhos relativos precisam virar URLs; e cada exportação passa pela janela de impressão, um documento por vez.

2. Pandoc (linha de comando)

O Pandoc é um conversor de documentos gratuito e de código aberto. É a opção mais poderosa das quatro e também a que tem mais peças.

Instale

  • Windows: winget install --source winget --exact --id JohnMacFarlane.Pandoc, ou o instalador da página de download.
  • macOS: brew install pandoc.
  • Linux: o gerenciador de pacotes da sua distribuição (confira se a versão não está desatualizada) ou o .deb ou o tarball da página de download.

Por padrão, o Pandoc gera PDFs via LaTeX, que é instalado à parte. A página de instalação recomenda MiKTeX no Windows, BasicTeX ou TinyTeX no macOS (o MacTeX completo ocupa cerca de 4 GB) e TeX Live no Linux (sudo apt-get install texlive no Debian e no Ubuntu).

Converta

pandoc notas.md -o notas.pdf

A extensão .pdf basta: o Pandoc converte para LaTeX e executa o pdflatex. Para usar outro motor, adicione --pdf-engine; o manual lista pdflatex, lualatex, xelatex, latexmk, tectonic, wkhtmltopdf, weasyprint, pagedjs-cli, prince, context, groff, pdfroff e typst, cada um instalado separadamente.

pandoc notas.md --pdf-engine=xelatex -V mainfont="Noto Serif" -o notas.pdf
pandoc notas.md --pdf-engine=weasyprint --css=impressao.css -o notas.pdf
pandoc notas.md --pdf-engine=typst -o notas.pdf

xelatex e lualatex lidam com Unicode e com qualquer fonte instalada; o WeasyPrint passa por HTML, então você o estiliza com CSS; o Typst é um sistema de composição mais recente que se instala como um único programa.

Opções úteis

pandoc relatorio.md -o relatorio.pdf --toc -N -V geometry:margin=2cm -V papersize=a4
  • --toc adiciona um sumário e -N numera as seções.
  • -V geometry:margin=2cm define as margens e -V papersize=a4 (ou letter) o tamanho do papel, com os motores LaTeX.
  • Um bloco YAML no início do arquivo com title, author e date vira o bloco de título do documento.
  • \newpage sozinho em uma linha força uma quebra de página com os motores LaTeX.

Erros comuns

  • pdflatex not found: o LaTeX não está instalado ou não está no PATH. Instale-o e abra um terminal novo, ou escolha outro --pdf-engine.
  • LaTeX Error: File `….sty' not found: falta um pacote em uma distribuição mínima. Adicione-o com tlmgr install e o nome do pacote (TeX Live, BasicTeX, TinyTeX); o MiKTeX consegue instalar pacotes que faltam na hora.
  • Unicode character … not set up for use with LaTeX: emojis, texto em chinês, japonês ou coreano, ou símbolos raros com o pdflatex. Troque para xelatex ou lualatex com uma fonte que tenha esses caracteres.
  • Imagens não encontradas: caminhos relativos são resolvidos a partir da pasta onde você roda o comando, não da pasta do arquivo. Rode o Pandoc nessa pasta ou adicione --resource-path.
  • Diagramas ou HTML sumiram: blocos Mermaid são impressos como código se você não adicionar um filtro, e o HTML embutido é descartado na passagem pelo LaTeX.

3. VS Code com a extensão Markdown PDF

A pré-visualização de Markdown nativa do VS Code (Ctrl+Shift+V) não tem comando para exportar nem imprimir. A solução mais comum é a extensão Markdown PDF, de yzane, que imprime o arquivo com um navegador baseado no Chromium e salva o PDF ao lado dele.

  1. Abra a visualização Extensões (Ctrl+Shift+X), procure Markdown PDF e instale a publicada por yzane.
  2. Abra seu arquivo .md.
  3. Pressione F1 ou Ctrl+Shift+P (Cmd+Shift+P no Mac), digite export e escolha Markdown PDF: Export (pdf). Os mesmos comandos aparecem ao clicar com o botão direito no editor.

Ela usa o Chrome ou o Edge, se estiverem instalados; se não, baixa o Chromium no primeiro uso. Por padrão, o cabeçalho mostra o nome do arquivo e a data, e o rodapé, página / total. Dá para mudar isso, e muito mais, no settings.json:

"markdown-pdf.format": "Letter",
"markdown-pdf.margin.top": "2cm",
"markdown-pdf.displayHeaderFooter": false,
"markdown-pdf.styles": ["impressao.css"],
"markdown-pdf.convertOnSave": true

A conversão ao salvar passa a valer depois de reiniciar o VS Code. A extensão renderiza listas de tarefas, fórmulas com KaTeX, Mermaid (a biblioteca é carregada de um CDN, então os diagramas precisam de conexão) e PlantUML, que é enviado a um servidor PlantUML, plantuml.com por padrão. Use <div class="page"></div> para uma quebra de página; o README lista todas as opções.

4. md-to-pdf (Node.js)

O md-to-pdf é uma pequena ferramenta de linha de comando: transforma o Markdown em HTML com o Marked, destaca o código com o highlight.js e imprime a página com o Puppeteer (Chromium sem interface). Com o Node.js instalado:

npx md-to-pdf notas.md

Isso gera notas.pdf ao lado do arquivo original. Para ter o comando sempre disponível, instale com npm i -g md-to-pdf. A primeira instalação é lenta porque o Puppeteer baixa o próprio Chrome.

O estilo é CSS puro: --stylesheet impressao.css substitui a folha de estilos padrão, --css adiciona regras direto na linha de comando e --highlight-style escolhe um tema do highlight.js. As opções também podem ficar no front matter, o que evita ter de pôr JSON entre aspas no terminal:

---
stylesheet: impressao.css
pdf_options:
  format: Letter
  margin: 20mm
  printBackground: true
---

# Relatório trimestral

Ele converte vários arquivos de uma vez (md-to-pdf docs/*.md), tem um modo --watch e aceita as opções headerTemplate e footerTemplate do Puppeteer para numerar páginas. Quebras de página usam <div class="page-break"></div>; fórmulas e Mermaid não vêm integrados. O README avisa que ele serve a pasta atual em um servidor web local, acessível pela sua rede enquanto roda, então não o execute a partir da sua pasta pessoal; arquivos fora da pasta atual precisam de --basedir.

Qual escolher?

  • Um documento, agora, em qualquer computador: o navegador. Os temas dão um visual caprichado sem escrever CSS.
  • Uma tese, um artigo ou um livro com fórmulas, citações, seções numeradas e sumário: Pandoc com LaTeX ou Typst.
  • Documentação que você edita no VS Code: a extensão Markdown PDF, com conversão ao salvar se você exporta com frequência.
  • Processamento em lote, scripts de build ou CI: md-to-pdf, ou Pandoc se você já tem um motor configurado.
  • Números de página são obrigatórios: Pandoc, a extensão do VS Code ou o modelo de rodapé do md-to-pdf.

Para documentos específicos, veja os guias sobre como fazer um relatório ou proposta, um currículo ou o PDF de um README do GitHub.

Dicas para qualquer método

  • Imagens. Cada ferramenta resolve caminhos relativos a partir de um lugar diferente: o Pandoc, da pasta onde você o executa; o md-to-pdf, da pasta que ele serve; a extensão do VS Code, da pasta do arquivo; e uma página web, de lugar nenhum. URLs absolutas https:// funcionam em todas quando há conexão.
  • Quebras de página. O Printdown aceita <!-- pagebreak --> ou \newpage; o Pandoc com LaTeX, \newpage; a extensão do VS Code, <div class="page"></div>; o md-to-pdf, <div class="page-break"></div>.
  • Código. Escreva a linguagem depois da abertura do bloco (```python) para que todas as ferramentas destaquem a sintaxe. As ferramentas baseadas em navegador quebram linhas longas; a saída LaTeX do Pandoc não, então elas podem passar da margem.
  • Fontes. As ferramentas baseadas em navegador pegam as fontes dos temas ou do CSS; no Pandoc, use xelatex ou lualatex e -V mainfont="…".
  • Front matter. O bloco YAML do início é metadado para o Pandoc e configuração para o md-to-pdf e a extensão do VS Code, mas o Printdown o imprime como texto, então apague-o ali.

Solução de problemas

  • O texto não pode ser selecionado. Você usou uma exportação em imagem, como o PDF rápido. Use Baixar PDF e Salvar como PDF.
  • Mermaid ou fórmulas aparecem como código. A ferramenta não os processa (Pandoc sem filtro, md-to-pdf). No Printdown, um texto vermelho no lugar do diagrama indica um erro de sintaxe no diagrama.
  • Uma tabela passa da página. Reduza a fonte e as margens, ou divida a tabela (veja Tabelas em Markdown). A orientação paisagem ajuda onde existe: -V geometry:landscape no Pandoc, "markdown-pdf.orientation": "landscape" no VS Code e landscape: true dentro de pdf_options no md-to-pdf. O Printdown só imprime em retrato.

Respostas rápidas

Dá para converter Markdown para PDF sem instalar nada?

Sim. O método do navegador só precisa de um navegador atualizado, e a conversão acontece no seu dispositivo.

O texto do PDF vai ser selecionável?

Com os quatro métodos, sim: o PDF contém texto real, que pode ser pesquisado e copiado. A única exceção é o PDF rápido, que salva as páginas como imagens.

É seguro para documentos confidenciais?

Os quatro convertem no seu próprio computador e não enviam seu texto. Fique de olho em duas coisas: as imagens que você vincula são baixadas dos servidores delas, e a extensão do VS Code envia os diagramas PlantUML para um servidor PlantUML.

Qual fica mais bonito?

O LaTeX, via Pandoc, tem a quebra de linhas e a composição de fórmulas mais refinadas. As ferramentas baseadas em navegador são mais fáceis de personalizar com temas ou CSS. Primeira vez com a sintaxe? Comece pelo guia de Markdown.

Mais guias