Converter PDF, Word e slides em Markdown para IA e RAG
Por Fazt ·
Assistentes como ChatGPT, Claude e Gemini conseguem trabalhar com documentos longos, mas a resposta nunca vai ser melhor do que o texto que eles recebem. Copie o texto de um visualizador de PDF e você terá uma quebra de linha no fim de cada linha, palavras cortadas por hifens, números de página no meio das frases e tabelas achatadas em uma sequência de células. Converter o arquivo para Markdown antes dá a você um texto limpo, que mantém a estrutura do documento e que pode ser revisado e enxugado antes de ir para qualquer lugar. Veja o que esperar de cada tipo de arquivo, como limpar o resultado e como usá-lo em prompts e em RAG.
Por que Markdown é um bom formato de entrada
- A estrutura é preservada. Títulos, listas e tabelas são marcados com poucos caracteres comuns (
##,-,|), então a hierarquia do documento continua ali, como texto. - Pouco excesso. O HTML envolve cada elemento em tags e atributos; o Markdown marca a mesma estrutura com um ou dois caracteres, então quase tudo o que você envia é conteúdo.
- Títulos servem de referência. Você pode pedir ao modelo que olhe para “a seção Exceções”, que cite o título que usou ou cortar o arquivo nos títulos para a recuperação.
O que esperar de cada tipo de arquivo
Abra Qualquer arquivo para Markdown e solte um arquivo. O resultado aparece em uma caixa de texto editável com os botões Copiar, Baixar .md e Abrir no editor → PDF.
O conversor de PDF reconstrói parágrafos, títulos e tabelas a partir do layout da página e deduz os títulos pelo tamanho da fonte. Cabeçalhos e números de página que se repetem em todas as páginas costumam ser removidos, mas a primeira cópia de um cabeçalho pode ficar no início do arquivo. Palavras hifenizadas na quebra de linha saem separadas, como con- tratos. Layouts com várias colunas ou muito diagramados exigem mais limpeza, e as imagens não são extraídas.
Word
O conversor de Word mantém títulos, negrito, itálico, listas, tabelas, links e notas de rodapé, e também lê arquivos .doc antigos. Os títulos só são reconhecidos se o documento usar estilos de título: uma linha de texto grande em negrito continua sendo um parágrafo em negrito. O estilo Título e o Título 1 do Word viram ambos #, e os cabeçalhos e rodapés definidos no Word ficam de fora. (Se o documento vai para o GitHub e não para um chat, veja Transformar um documento do Word em README do GitHub.)
PowerPoint, com as anotações do orador
O conversor de PowerPoint processa os slides em ordem. Os títulos dos slides viram cabeçalhos ##, os marcadores viram listas, as tabelas viram tabelas Markdown e as anotações do orador entram como uma citação depois do slide correspondente:
## Por que mudar os preços
- Contas pequenas cancelam em 90 dias
- Planos por usuário confundem os compradores
- A concorrência inclui o onboarding
> Mencione as três vendas perdidas. No máximo dois minutos.
Um slide sem o espaço reservado para título fica sem cabeçalho, e o texto dele acaba sob o título do slide anterior. Gráficos e SmartArt não são convertidos.
Excel, CSV e EPUB
O conversor de Excel transforma cada aba em uma tabela, com um cabeçalho ## Nome da aba quando há mais de uma. As células trazem o último valor calculado, não a fórmula, com o formato de número da célula (5% e não 0.05). Arquivos CSV usam a primeira linha como cabeçalho, seja qual for o separador. Um EPUB vira um único arquivo em ordem de leitura, com os títulos dos capítulos; livros com DRM não podem ser lidos.
Tabelas longas são fáceis de interpretar errado, tanto por pessoas quanto por modelos: cole só as linhas de que precisa e confira os números principais no original.
Checklist de limpeza antes de colar
Leia o texto convertido uma vez, do começo ao fim, e corrija isto:
- Cabeçalhos e textos padrão: um cabeçalho repetido no topo, uma capa, avisos de confidencialidade, um sumário. O sumário são títulos sem conteúdo: ruído no prompt e trechos inúteis em uma base de conhecimento.
- Números de página soltos ou linhas como “Página 3 de 12” dentro de um parágrafo.
- Palavras quebradas. Clique em Abrir no editor → PDF, clique no painel de Markdown e pressione Ctrl+F (Cmd+F no Mac). Marque regexp, busque
(\p{Ll})- (\p{Ll})e substitua por$1$2. Revise as ocorrências uma a uma: guarda-chuva quebrado justamente no hífen, ou “pré- e pós-operatório”, devem mantê-lo. - Falsos títulos: linhas em negrito que na verdade são títulos de seção. Coloque
##na frente delas. - Tabelas quebradas: compare as tabelas do PDF com o original. Se alguma não tiver conserto, copie-a para uma planilha, salve como CSV e converta esse arquivo.
- Imagens: deixe Incluir imagens desativado ao trabalhar com IA, para que cada imagem seja substituída pelo texto alternativo. Com a opção ativada, o
.mdbaixado incorpora as imagens em base64: longas sequências de caracteres que ocupam o contexto e não dizem nada a um modelo de texto. Se um gráfico for importante, descreva-o em uma frase. - Tudo de que o modelo não precisa, como anexos, textos jurídicos ou dados pessoais.
Um resultado típico de PDF, do jeito que sai do conversor:
Revisão Trimestral de Negócios · Confidencial
# Revisão do terceiro trimestre
## Receita
As vendas cresceram, exceto no Nordeste, onde dois con- tratos foram adiados.
E depois da limpeza:
# Revisão do terceiro trimestre
## Receita
As vendas cresceram, exceto no Nordeste, onde dois contratos foram adiados.
Prompts que aproveitam a estrutura
Coloque primeiro o documento, entre delimitadores claros, e depois suas instruções e sua pergunta. Pedir o título da seção torna cada resposta fácil de conferir:
Responda usando apenas o documento abaixo. Se a resposta não estiver
nele, diga isso. Depois de cada resposta, informe o título da seção
que você usou.
<documento>
# Política de reembolso
## Quem pode pedir reembolso
…
</documento>
Pergunta: Um cliente corporativo pode pedir reembolso depois de 45 dias?
Outros padrões que aproveitam o Markdown:
- Seção por seção: “Resuma cada seção
##em dois tópicos e mantenha os títulos.” - Anotações do orador: “As linhas que começam com
>são anotações do orador. Transforme cada slide e suas anotações em um parágrafo de um relatório escrito.” - Comparações: cole dois documentos, cada um sob o seu próprio título
#, e peça uma tabela com as diferenças. - Arquivos longos: se um documento não couber em uma mensagem, envie uma seção
##por vez em vez de cortá-lo em qualquer ponto.
Dividindo o Markdown em trechos para RAG
Ferramentas de geração aumentada por recuperação (RAG) guardam cada documento em muitos trechos pequenos (chunks) e entregam ao modelo só os que combinam com a pergunta. Um trecho que começa no meio de um assunto e termina no meio do seguinte combina mal; os títulos são pontos de corte naturais.
- Corte nos títulos
##; se uma seção for muito longa, corte de novo nos###ou entre parágrafos. - Nunca corte dentro de uma tabela, lista ou bloco de código. Se precisar dividir uma tabela longa, repita a linha de cabeçalho.
- Guarde com cada trecho o caminho de títulos (Política de reembolso > Exceções) para que ele faça sentido sozinho.
- Mantenha o nome do arquivo e a data como metadados, para que as respostas possam apontar para a fonte.
- Em apresentações, um trecho por slide costuma funcionar.
Muitos frameworks de RAG e ferramentas de base de conhecimento têm um divisor próprio para Markdown ou por títulos; as mesmas regras valem para eles. Se o seu não tiver, este script em Python (só usa a biblioteca padrão) imprime uma linha JSON por seção:
import json, re, sys
def split_by_headings(md, max_level=2):
"""Corta o Markdown nos títulos até max_level (2 = # e ##)."""
chunks, path, buf, in_code = [], [], [], False
def flush():
text = "\n".join(buf).strip()
if text and not re.fullmatch(r"#{1,6}\s+.+", text): # ignora seções vazias
chunks.append({"section": " > ".join(t for _, t in path), "text": text})
for line in md.splitlines():
if line.lstrip().startswith(("```", "~~~")):
in_code = not in_code
m = None if in_code else re.match(r"(#{1,6})\s+(.+)", line)
if m and len(m.group(1)) <= max_level:
flush()
level = len(m.group(1))
path = [(l, t) for l, t in path if l < level] + [(level, m.group(2).strip())]
buf = [line]
else:
buf.append(line)
flush()
return chunks
name = sys.argv[1]
with open(name, encoding="utf-8") as f:
for chunk in split_by_headings(f.read()):
print(json.dumps({"source": name, **chunk}, ensure_ascii=False))
Salve como split_md.py e rode python split_md.py relatorio.md > trechos.jsonl. Como o estilo Título e o Título 1 do Word viram ambos #, troque antes os # excedentes por ## se quiser o título do documento em todos os caminhos.
Privacidade: o que fica no seu dispositivo
A conversão roda dentro da aba do navegador com WebAssembly; o arquivo nunca é enviado. Isso muda no momento em que você cola o texto: a partir daí ele vai para o serviço de IA que você usa, sob os termos dele. Converter antes permite ver cada palavra que você vai compartilhar e apagar nomes, números de conta ou seções inteiras antes de enviar.
Limites e solução de problemas
- PDFs digitalizados precisam de OCR, que o conversor não faz. Uma mensagem indica as páginas afetadas; adicione uma camada de texto com um aplicativo de OCR e depois converta.
- Arquivos protegidos por senha precisam ser desbloqueados no aplicativo original; e-books com DRM não podem ser convertidos.
- Arquivos com mais de 50 MB são recusados. Divida o documento ou exporte uma versão mais leve.
- Um arquivo por vez: não há conversão em lote. Converta cada documento e cole todos em um único arquivo, cada um sob o seu próprio título
#. - “O arquivo é complexo demais para ser convertido com segurança no navegador” significa que um limite de segurança foi atingido; tente com partes menores.
- Ordem de leitura embaralhada em um PDF costuma vir de colunas ou caixas de texto flutuantes. Se você tiver o Word ou o PowerPoint original, converta esse arquivo: a estrutura dele é lida diretamente, em vez de deduzida pela posição na página.
Mais guias
- Guia de Markdown: referência rápida para PDFs perfeitos
- Como converter Markdown para PDF: 4 formas grátis
- Exportar notas do Obsidian e do Notion para PDF
- Como escrever seu currículo em Markdown e gerar PDF
- Transformar um documento do Word em README do GitHub
- Tabelas em Markdown: do Excel ou CSV a um PDF limpo
- Diagramas Mermaid em Markdown: exporte para PDF
- Fórmulas em Markdown: escreva LaTeX e exporte para PDF
- Exportar um README do GitHub e sua documentação para PDF
- Escreva um relatório ou proposta em Markdown e gere o PDF
- Markdown ou Word: qual escolher e como migrar