Guia · PDF → Markdown
PDF para Markdown, e por que a estrutura é uma dedução
Todos os outros conversores daqui leem uma estrutura que realmente está no arquivo. Este não pode, porque um PDF não tem nenhuma.
O que um PDF guarda são caracteres em coordenadas com um tamanho de fonte. «Isto é um título» não está lá dentro. Então a estrutura é deduzida, e saber como ela é deduzida diz exatamente quando ela vai estar errada.
Não existe estrutura dentro de um PDF
Um PDF é um formato de impressão. O trabalho dele é pôr o glifo certo no ponto certo da página, e ele faz isso guardando pedaços de texto com uma posição e uma fonte. Nada no arquivo diz qual deles é um título, onde um parágrafo termina, ou que seis linhas são uma lista com marcadores.
Então um documento do Word é convertido; um PDF é reconstruído. Tudo o que vem abaixo é uma heurística, e cada heurística tem casos em que falha. Por isso um aviso aparece acima da saída em toda conversão de PDF, mesmo que nada pareça estranho.
Se você tem o .docx original, use ele. Ele converte direito, porque a estrutura realmente está lá.
Como os títulos são encontrados
Primeiro o tamanho do texto de corpo é calculado: os tamanhos de fonte de todas as linhas são contados, ponderados por quantos caracteres cada linha tem, e o mais comum ganha. Ponderar por caractere e não por linha importa: uma linha longa de parágrafo diz mais sobre qual é o tamanho do corpo do que uma linha curta de título.
Depois, uma linha é um título se for claramente maior que isso e for curta. A proporção de tamanho escolhe o nível: 1,6× ou mais vira #, 1,35× vira ##, e 1,15× vira ###. Os níveis de título originais não existem mais, então o que se preserva é só a relação relativa: estes títulos são do mesmo patamar entre si.
O limite de comprimento é 120 caracteres, e está ali por uma falha específica: um documento cujo parágrafo de abertura está em letra grande não é um título, e o tamanho sozinho não percebe a diferença. O comprimento percebe.
Essa também é a heurística que perde mais coisas. Um documento que estiliza seus títulos por peso e não por tamanho — negrito no mesmo tamanho do corpo — não tem nenhum sinal de tamanho, e esses títulos saem como parágrafos.
Elementos de página, parágrafos e listas
Cabeçalhos e rodapés são descartados quando são ao mesmo tempo menores que o texto de corpo e estão dentro de 9% da altura da página a partir da borda de cima ou de baixo. É proporcional em vez de uma medida fixa, então A4 e Carta se comportam igual. Sem isso, um número de página ou um selo de «Confidencial» repetido em cada página interromperia o texto quarenta vezes.
Uma quebra de parágrafo é um vão vertical maior que 1,8× o tamanho da fonte daquela mesma linha. É assim que um PDF expressa uma, porque não há marca de parágrafo para ler.
Listas são detectadas pelos primeiros caracteres: um glifo de marcador (•, ·, ▪, ◦, ‣, ∙) ou um número de até três dígitos seguido de um ponto ou um parêntese de fechamento. Uma lista desenhada de outro jeito não é uma lista para o conversor.
Palavras partidas entre linhas
PDFs cortam palavras com hífen no fim da linha, e uma junção ingênua dá «re- latório». As linhas são recolhidas em uma única palavra quando uma linha termina em hífen e a seguinte começa em minúscula: essa combinação é um hífen de quebra de linha quase sempre.
Quando a linha seguinte começa em maiúscula, o hífen fica. «State-of-the-art» partido depois de «state-» mantém o hífen, e isso está certo, porque esse é parte da palavra.
Linhas em chinês, japonês e coreano são juntadas sem nenhum espaço. Essas escritas não separam palavras com espaços, então enfiar um em cada quebra de linha abriria um vão no meio de uma frase.
The quarterly re-
port is attached.The quarterly report is attached.Um PDF digitalizado não dá nada
Se uma página é uma imagem de texto — uma digitalização, uma foto, um fax — não há caracteres no arquivo para ler, só um mapa de bits. O conversor diz isso e para, em vez de devolver um documento vazio que parece um erro.
Tirar texto disso exige OCR, que não faz parte desta ferramenta. Um PDF em que algumas páginas são digitalizações e outras não vai converter as páginas reais e listar os números das que saíram vazias, até seis.
Dois tetos: 25 MB e 500 páginas. Os dois são sobre o que uma aba do navegador consegue fazer sem travar: um PDF é processado aqui, no seu navegador, sem nenhum servidor no meio.
O que fazer com páginas em várias colunas
Layouts de duas colunas são o caso mais difícil e saem do melhor jeito possível. O texto é lido na ordem em que o arquivo o guarda, que em um PDF de duas colunas bem feito é coluna por coluna, e em um mal feito alterna entre colunas linha a linha. Não há como saber com segurança qual você tem antes de ler.
Tabelas e fórmulas são a mesma história: uma tabela em um PDF são linhas desenhadas e texto em coordenadas, sem nada que a marque como tabela. Espere as células como linhas separadas, não como uma tabela de barras.
Ligue as marcas de página se você for corrigir coisas à mão. Isso insere um comentário HTML antes de cada página, então você consegue achar de qual página veio um trecho destruído e comparar com o original.
…fim da página um.…fim da página um.
<!-- page 2 -->
## MethodSolte o PDF e leia os avisos acima da saída: eles dizem quais páginas foram puladas e lembram que a estrutura foi deduzida. Tudo é lido no seu navegador; o arquivo nunca é enviado.
PDF → MD