Por que converter um PDF perde estrutura, e o que fazer a respeito

Última revisão

Todo conversor de PDF para Markdown, este incluído, produz resultados que às vezes erram de um jeito que parece desleixo: um título rebaixado a parágrafo, uma tabela achatada num muro de palavras, uma página de duas colunas lida em linha reta com as frases entrelaçadas.

Nada disso é desleixo. Decorre do que um PDF realmente contém, e assim que você sabe disso os erros ficam previsíveis — o que significa que dá para prever quais dos seus documentos vão converter bem e quais não.

8 min de leitura

O que existe de fato dentro de um PDF

Um documento de editor de texto é uma árvore. Ele registra que um trecho é um título de nível dois, que estes parágrafos pertencem àquela seção, que estas células formam uma tabela de três colunas. A aparência é derivada dessa estrutura na hora de exibir.

Um PDF é o contrário. É um conjunto de instruções de desenho: coloque este glifo, desta fonte, neste tamanho, nestas coordenadas desta página. A estrutura que produziu o layout não é salva. Ela serviu para calcular as posições e depois foi descartada.

Isso não é um descuido do formato. O PDF foi projetado em 1993 para garantir que um documento parecesse idêntico em qualquer aparelho e qualquer impressora, e o jeito de garantir isso é especificar a aparência com exatidão e não deixar nada para recalcular. Deu certo por completo. O preço é que um PDF sabe onde está cada caractere e nada sobre o que ele significa.

Então converter um PDF em Markdown não é extração. É inferência: ler a geometria de volta e adivinhar que estrutura a teria produzido. Um bom conversor adivinha bem. Nenhum consegue fazer melhor que adivinhar, porque a resposta genuinamente não está no arquivo.

A única exceção: PDFs marcados

Um PDF marcado carrega uma árvore de estrutura adicional, incluída por acessibilidade para que um leitor de tela possa anunciar títulos e ler as células em ordem. Quando ela existe e está correta, boa parte da adivinhação desaparece.

Na prática raramente as duas coisas acontecem. A marcação é opcional, a maioria dos geradores de PDF não a inclui, e muitos dos que incluem produzem marcações que contradizem o layout visível: cada parágrafo marcado como título, ou uma tabela marcada como uma sequência de parágrafos. Um conversor que confiasse em marcações ruins produziria resultados piores do que um que as ignora.

Se você controla como o PDF é gerado e se importa com a qualidade da conversão, exportar um PDF devidamente marcado do Word ou do LibreOffice é a coisa mais útil que dá para fazer. Se você converte documentos que chegam de fora, presuma que não estão marcados.

Como a estrutura é inferida da geometria

As regras que qualquer conversor espacial usa são basicamente as mesmas, e vale conhecê-las porque cada uma implica um modo de falha.

Primeiro, estabelecer uma unidade. A altura do texto corrido — a altura de fonte mais comum no documento, ponderada por quantos caracteres estão compostos nela — vira a régua, de modo que as regras funcionam igual com o documento em 9 ou em 14 pontos.

Depois, medir tudo contra ela. Trechos que compartilham a linha de base formam uma linha. Linhas separadas por um vão vertical pequeno formam um parágrafo; um vão maior começa outro. Um trecho visivelmente maior que o corpo é um título, e o quanto maior decide o nível. Linhas cujos fragmentos se alinham em posições horizontais compartilhadas formam uma tabela. Uma faixa vertical vazia e alta no meio da página significa duas colunas, então a ordem de leitura deve descer por uma e depois pela outra.

Este conversor usa aproximadamente estes limiares, medidos em múltiplos da altura do corpo:

H1Mais de 1,8 × a altura do texto corrido
H2Mais de 1,4 × a altura do texto corrido
H3Mais de 1,2 × a altura do texto corrido
Mesma linhaLinhas de base dentro de ±0,35 × a altura do corpo
Mesmo parágrafoVão vertical de até 1,5 × a altura do corpo
Tabela2+ linhas consecutivas alinhadas em 2+ posições x

Toda falha decorre de uma regra

Releia aquela lista como uma lista de premissas e os erros deixam de ser misteriosos.

  • Títulos marcados por peso ou cor em vez de tamanho são invisíveis para um limiar de tamanho. Um documento cujos títulos são negrito de 11pt sobre corpo de 11pt não tem, geometricamente, título nenhum.
  • Tabelas com células mescladas quebram o teste de posições compartilhadas, porque uma célula mesclada ocupa uma posição que nenhuma outra linha usa. As linhas param de se alinhar e o bloco deixa de ser reconhecido como tabela.
  • Uma célula cujo texto quebra numa segunda linha parece duas linhas, uma delas com um buraco.
  • Entrelinha generosa pode empurrar linhas de um mesmo parágrafo além do limiar de quebra e dividi-lo. Espaçamento apertado entre parágrafos pode fundi-los.
  • Um layout de três colunas, ou de duas colunas de larguras diferentes, ou com colunas interrompidas por uma figura de largura total, derrota o teste do vão central.
  • Texto composto como imagem — um logotipo com palavras, um gráfico com rótulos, uma página digitalizada — não tem glifo nenhum, então não há o que posicionar nem o que ler.

Quais documentos convertem bem

O padrão é sempre o mesmo: documentos de coluna única produzidos por um editor de texto, com títulos visivelmente maiores que o corpo, tabelas retangulares simples e texto de verdade em vez de imagens de texto.

Isso descreve a maioria dos relatórios, artigos, manuais, teses, contratos, atas e documentação interna — ou seja, a maior parte do que as pessoas convertem. Não descreve revistas, folhetos, relatórios anuais com infográficos, formulários, notas fiscais com tabelas complexas nem nada digitalizado.

Converte bemRelatórios, artigos, manuais, contratos e atas de editor de texto
Converte em partePDFs acadêmicos com duas colunas, notas de rodapé e figuras
Converte malRevistas, folhetos, formulários, notas fiscais, layouts projetados
Não converteDigitalizações e fotografias, até que se rode reconhecimento de texto

Tirar um resultado melhor de um documento difícil

Algumas coisas ajudam de verdade, em ordem aproximada de quanta diferença fazem.

  • Se você consegue gerar o PDF de novo, exporte um marcado — ou melhor, pule o PDF e converta o documento original. Converter um PDF feito a partir de um arquivo do Word é sempre pior do que converter o arquivo do Word.
  • Divida um documento que mistura layouts. Converta as dez páginas de texto corrido separadamente das quatro de tabelas, em vez de brigar com uma conversão que precisa dar conta das duas.
  • Extraia sozinha uma tabela teimosa. Uma tabela que falha dentro de um documento de 60 páginas costuma converter certo quando é a única coisa na página.
  • Conte com corrigir títulos à mão num documento que os marca pelo peso. É uma passada de localizar e substituir, não um trabalho de redigitar.
  • Para uma digitalização, rode reconhecimento de texto primeiro. Não há atalho: nenhum analisador acha texto que nunca foi codificado como texto.

Leia sempre o resultado

A falha que custa tempo de verdade não é a conversão que quebra à vista. É a que deixa cair algo em silêncio — uma nota de rodapé, a última linha de uma tabela, uma linha que ficou fora da coluna detectada — e produz um Markdown limpo e plausível com um buraco dentro.

Passe os olhos pelo Markdown convertido ao lado do original antes de confiar nele, e preste atenção especial às tabelas, a tudo que for numérico e às últimas linhas de cada página. É ali que as perdas silenciosas se concentram.