Ir para o conteúdo
Allin

Extrair o texto de um PDF, e o que a paginação lhe faz

Publicado a 11/08/2026 · 15 min de leitura · Ferramentas de ficheiros

Daniel Okonkwo

Daniel OkonkwoProgramador front-end e redator de Tecnologia na Allin

Desempenho web · Formatos de ficheiro

Verificado a partir de 3 fontes

Ver perfil
Em resumo

Um PDF não guarda linhas, nem parágrafos, nem uma ordem de leitura. Guarda glifos em coordenadas de uma página, pelo que toda a extração é uma reconstrução e são as regras aplicadas pela ferramenta que decidem o resultado. Esta ferramenta agrupa em linhas os glifos que partilham a mesma linha de base e oferece dois modos: «Manter as linhas» reproduz a página tal como está paginada, e «Juntar em parágrafos» volta a colar as linhas cortadas, tomando o primeiro quartil das distâncias entre linhas de base como entrelinha normal da página e qualquer intervalo acima de 1,35 vezes esse valor como fim de parágrafo. Medido sobre ficheiros reais: uma página a duas colunas sai entrelaçada nos dois modos — a linha da esquerda e a da direita partilham a linha de base, são unidas por um espaço e o texto torna-se ilegível. Uma tabela mantém as linhas mas perde as colunas; as células ficam separadas por um único espaço e uma célula vazia desaparece, pelo que uma linha de quatro colunas chega com três valores e nada assinala qual falta. As palavras partidas por um hífen voltam a juntar-se no modo parágrafo («con-» mais «cluded» dá «concluded»), mas a regra é incondicional: um hífen verdadeiro de palavra composta em fim de linha também é colado, e «long-» mais «term» dá «longterm». As ligaduras são bem tratadas: fi e fl voltam como pares de letras normais, não como o carácter único de ligadura. Cabeçalhos e rodapés repetidos são extraídos em todas as páginas: um decreto de 44 páginas produziu 44 cópias do seu cabeçalho, intercaladas no texto. Um PDF digitalizado não contém texto nenhum. A ferramenta não devolve nada e di-lo com clareza. Não faz OCR, e não há nenhum passo de OCR escondido.

Um PDF guarda glifos em coordenadas — não linhas, não parágrafos, não uma ordem de leitura. A extração reconstrói o texto a partir dessas posições, e é por isso que duas colunas saem entrelaçadas, uma tabela perde as células e uma digitalização não dá nada. Medido executando a ferramenta.

Um PDF não tem linhas — apenas glifos em coordenadas

Este é o facto de que tudo o resto decorre, e quase nenhum guia o diz com clareza. Uma página PDF é uma lista de instruções de desenho. Uma delas diz: coloca este glifo neste ponto, nesta fonte, neste tamanho. No ficheiro não existe qualquer objeto que signifique «parágrafo», nenhum que signifique «linha» e nenhum que registe que bloco de texto deve ser lido primeiro. O formato é definido pela norma ISO 32000, e a ordem de leitura simplesmente não faz parte do que uma descrição de página comum transporta.

Extrair é, portanto, reconstruir, e é aí que cada ferramenta difere. Esta pega na sequência de glifos que o pdf.js devolve, cada um com a sua posição, e agrupa numa linha aqueles cujas linhas de base ficam a menos de meia altura de glifo umas das outras. Dentro de uma linha ordena da esquerda para a direita e insere um espaço onde o intervalo horizontal ultrapassa um quinto da altura do glifo, porque um PDF que espaça as palavras deslocando o cursor não emite qualquer carácter de espaço. Essa reconstrução é boa. É também a razão de as falhas seguintes terem a forma que têm: são todas casos em que a geometria da página e a lógica do documento se contradizem.

Duas colunas: a falha com que vai deparar primeiro

Compôs-se uma página a duas colunas com quatro linhas em cada uma e extraiu-se. O resultado começa assim: «Revenue for the quarter rose by four Costs grew more slowly, at two per cent,». A primeira metade é a linha inicial da coluna esquerda; a segunda, a da direita. Partilham a linha de base, portanto para a reconstrução são uma só linha e são unidas por um espaço.

Mudar para «Juntar em parágrafos» piora as coisas em vez de as arranjar. As linhas entrelaçadas ficam agora coladas num único bloco de prosa em que cada frase é cortada ao meio por um fragmento da outra coluna. Pior ainda: a junção das palavras partidas deixa de funcionar. A coluna esquerda terminava uma linha com «sub-», mas quando a lógica de parágrafo olha para o tampão o hífen já não é o último carácter — o texto da coluna direita entrou a seguir. A saída diz «by the sub- reclassification of contractors into the scription business». A palavra «subscription» foi rasgada em duas e as metades estão a onze palavras de distância.

Não há definição que resolva isto, porque resolvê-lo implica detetar as colunas, e a deteção de colunas é um problema genuinamente difícil que a ferramenta não tenta. O contorno prático é extrair página a página e cortar o resultado à mão, ou aceitar que um artigo académico a duas colunas ou uma lei impressa vão exigir edição depois da extração, e não antes.

As tabelas mantêm as linhas e perdem as colunas

Uma tabela de quatro colunas extraiu-se de forma limpa ao nível da linha: «Region Revenue Cost Margin», e depois «North 1,240 980 21%». Cada linha fica na sua própria linha e pela ordem certa. O que desapareceu foi o limite de coluna: as células ficam separadas por um único espaço, tal como as palavras, pelo que nada na saída distingue um fim de célula de um fim de palavra. Cole isso numa folha de cálculo e obtém uma só coluna.

O problema mais agudo é a célula vazia. Uma tabela com uma «Nota» em branco numa linha e um «Fornecedor» em branco noutra produziu «Chair Nordia 89.00» e «Desk back-order 240.00»: quatro colunas a chegar como três valores, duas vezes, sem nada que diga que coluna foi saltada. Um leitor a reconstruir essa tabela a olho poria «back-order» na coluna Fornecedor. Nada no texto diz o contrário. E uma célula cujo conteúdo passa para uma segunda linha torna-se a sua própria linha: a nota «discontinued, replacement pending» saiu como «Lamp Vela discontinued, 15.00» seguida de uma linha que diz apenas «replacement pending».

No modo parágrafo a tabela deixa de ser uma tabela. O conjunto voltou como uma única frase: «Region Revenue Cost Margin North 1,240 980 21% South 870 910 -5% East 2,310 1,760 24%». Se o seu documento contém uma tabela que lhe interessa, use «Manter as linhas» — e conte reconstruir as colunas por si.

Hífenes, ligaduras e o cabeçalho em todas as páginas

A translineação está resolvida, com uma reserva. No modo parágrafo, uma linha terminada em hífen perde esse hífen e a linha seguinte é colada diretamente, pelo que «con-» e «cluded» dão «concluded», e «re-» e «vised» dão «revised». Ambos os casos foram verificados numa página a uma coluna. Mas a regra é incondicional: dispara com qualquer hífen em fim de linha, incluindo o que pertence à palavra. Numa página de teste, «long-» em fim de linha mais «term» produziu «longterm», e «e-» mais «mail» produziu «email». Nenhum é uma gralha do original: é a reparação a disparar a mais.

As ligaduras são a boa notícia, e vale a pena compreendê-las porque estragam a pesquisa nas ferramentas que as tratam mal. O fi de um tipógrafo é muitas vezes um único carácter na fonte, e uma fonte subconjunto devolve-o ao Unicode através de uma tabela que o PDF transporta. Extraia de forma ingénua e obtém U+FB01, idêntico no ecrã e sem correspondência quando procura «file». O motor por baixo desta ferramenta normaliza por omissão: o mesmo ficheiro de teste devolve «confirmed» e «fluently» como letras normais. Ao voltar a correr o ficheiro idêntico com a normalização desligada apareceram os caracteres de ligadura — e é assim que sabemos que é a normalização a fazer o trabalho.

Cabeçalhos e rodapés repetidos são extraídos em todas as páginas, e nada os retira. Um decreto consolidado espanhol de 44 páginas entregou exatamente 44 cópias de «LEGISLACIÓN CONSOLIDADA» e 44 linhas de número de página, largadas no meio do texto corrido. No ficheiro extraído, uma frase corta-se a meio da oração no fim da página 5, seguem-se um rodapé, um separador e duas linhas de cabeçalho, e retoma na página 6. Não é um defeito da reconstrução — o cabeçalho está mesmo na página — mas significa que qualquer documento longo exige uma passagem de localizar e substituir para retirar o mobiliário antes de o texto servir.

Um PDF digitalizado não contém texto, e o OCR é outra operação

Esta é a desilusão mais frequente, e merece uma resposta franca. Quando uma página é digitalizada ou fotografada, o PDF resultante contém uma imagem e mais nada. Não há glifos, nem fonte, nem códigos de carácter: apenas píxeis que a si lhe parecem letras. A extração não tem nada para encontrar, e escolher outra disposição não muda nada.

A ferramenta di-lo, o que nem todas fazem. Alimentada com uma página que só contém uma imagem, devolveu a cadeia vazia e mostrou uma frase a explicar que o ficheiro não tem texto selecionável e é muito provavelmente uma digitalização sem camada de texto. Não devolve em silêncio uma caixa de texto vazia, nem uma caixa que contenha apenas separadores de página: o vazio é testado sobre o corpo das páginas, não sobre a cadeia montada. Transformar uma digitalização em texto exige reconhecimento ótico de caracteres, que lê os píxeis e adivinha as letras. Esta ferramenta não o faz, e nada nela o faz discretamente em segundo plano.

Duas maneiras de uma página voltar vazia, e o que te é dito

Primeiro: um intervalo que nomeia páginas que o ficheiro não tem. Escreve 99 num documento de duas páginas e o analisador do intervalo descarta o número fora de limites, pelo que não sobra nada para extrair. Isso não é o mesmo que uma página sem texto, e já não recebe a mesma resposta: a mensagem diz quantas páginas o documento tem na realidade e pede-te para corrigir o intervalo ou esvaziá-lo. Medido num ficheiro de duas páginas a que se pede a página 99 — «Nenhuma das páginas que pediste existe neste documento: ele tem 2 página(s).» Um intervalo que passa do fim em vez de começar depois dele é simplesmente aparado: pedir 1-3 nesse mesmo ficheiro extrai as duas páginas sem um comentário.

Segundo: um documento que mistura páginas escritas com uma folha digitalizada — uma página assinada, um fax, um certificado fotografado e inserido. Essa página não tem camada de texto, por isso volta vazia enquanto o resto do documento se extrai sem problema. É o caso que passava em silêncio, porque o vazio era testado sobre o documento inteiro e as páginas escritas bastavam para o satisfazer: a página digitalizada ficava reduzida a um separador sem nada por baixo, e a nada de todo com os separadores desativados. O vazio é agora medido página a página. Num ficheiro de teste de quatro páginas cuja segunda era uma imagem, a extração devolveu as outras três e, por cima, uma linha âmbar a dizer «1 página(s) não têm texto selecionável e saem vazias: 2»; com as páginas 2 e 4 como imagens, a mesma linha nomeou «2, 4». É um aviso, não uma recusa — o texto que obtiveste continua a ser teu. O que te diz é quais as páginas que precisam de reconhecimento ótico de caracteres e não de uma segunda tentativa.

O que cada modo de disposição faz a um elemento de página — medido na ferramenta, agosto de 2026
Elemento de página«Manter as linhas»«Juntar em parágrafos»
Duas colunasLinha esquerda e direita unidas por um espaço, em todas as linhasO mesmo entrelaçamento, depois colado num bloco contínuo
Linha de tabelaUma linha por linha, células separadas por um único espaçoA tabela inteira torna-se uma única frase
Célula de tabela vaziaDesaparece — uma linha de quatro colunas chega como três valoresDesaparece, e o limite de linha também
Palavra partida por um hífenContinua partida: «con-» e depois «cluded»Junta-se corretamente: «concluded»
Hífen de palavra composta em fim de linhaMantido tal e qualJunta-se por engano: «long-» + «term» dá «longterm»
Ligadura fi / flPares de letras normais, pesquisáveisPares de letras normais, pesquisáveis
Cabeçalho e rodapé repetidosUma cópia por página, dentro do textoUma cópia por página, como parágrafo à parte
Página digitalizada (só imagem)Nada — a página é nomeada num aviso acima do textoNada — o mesmo aviso
PDF para textoExtrai o texto de um PDF e descarrega-o em ficheiro .txt.Experimentar a ferramenta

Perguntas frequentes

Porque é que o meu PDF a duas colunas sai ilegível?
Porque a linha da esquerda e a da direita estão impressas à mesma altura, e a reconstrução agrupa por altura. Não tem forma de saber que a página está dividida em duas zonas de leitura: um PDF não o regista. Por isso lê de lado a lado, une os dois fragmentos com um espaço e desce. Os dois modos fazem isto; o modo parágrafo agrava-o depois ao colar as linhas entrelaçadas. Se precisa de texto limpo de um documento a duas colunas, extraia página a página e separe as colunas à mão, ou procure uma versão do documento que nunca foi paginada em colunas.
Consegue ler um PDF digitalizado, e faz OCR?
Não, e não. Um PDF digitalizado contém uma imagem de página e nenhum objeto de texto, pelo que não há nada para extrair; a ferramenta não devolve nada e diz-lhe que o ficheiro é muito provavelmente uma digitalização sem camada de texto. O reconhecimento ótico de caracteres é outra operação: olha para os píxeis e adivinha que letras representam, daí poder errar e precisar de saber em que língua lê. Esta ferramenta não o faz, não o oferece e não o tenta às escondidas. Um teste rápido antes de enviar: abra o ficheiro em qualquer leitor e tente selecionar uma frase. Se o realce não seguir as palavras, nenhuma ferramenta de extração ajudará.
Diz que não há texto, mas eu consigo selecioná-lo no meu leitor. Porquê?
Verifica primeiro o intervalo de páginas. O campo aceita qualquer coisa e descarta em silêncio os números que o documento não tem, pelo que pedir a página 99 de um ficheiro de dez não deixa nada para extrair — e a mensagem que recebes diz exatamente isso, indicando quantas páginas o documento tem na realidade, em vez de chamar digitalização ao teu ficheiro. Esvazia o campo e volta a correr. A outra hipótese é que as páginas selecionadas sejam justamente as digitalizadas: um documento pode misturar páginas escritas com uma folha digitalizada, e se pediste só essa folha, não há nada nela. Pede antes o documento inteiro. Toda a página com texto é extraída, e as que voltam vazias são nomeadas num aviso acima do resultado, para veres quais precisam de reconhecimento ótico de caracteres.
Que modo de disposição devo escolher?
Escolha «Manter as linhas» sempre que a disposição da página carregue sentido: tabelas, formulários, faturas, tudo o que tenha colunas e qualquer documento que tencione verificar linha a linha. Escolha «Juntar em parágrafos» só para texto corrido a uma coluna que vá colar num documento, onde as linhas cortadas atrapalham em vez de informar. O modo parágrafo é o que repara as palavras partidas, por isso produz prosa realmente melhor — no tipo de página certo. No errado destrói a estrutura de forma irreversível, e não a recupera a partir da saída: tem de voltar a extrair.
Retira o cabeçalho e o rodapé que se repetem em cada página?
Não. Cada elemento repetido sai uma vez por página, e num documento longo isso é muito ruído: um decreto de 44 páginas produziu 44 cópias da sua linha de cabeçalho e 44 linhas de número de página, colocadas entre as frases que interrompem. Retirá-las de forma fiável exigiria reconhecer que uma linha é mobiliário e não conteúdo, um juízo que a ferramenta não faz. O remédio prático é um localizar e substituir num editor de texto após a extração: o cabeçalho é uma cadeia repetida idêntica, portanto uma única substituição apaga-os todos. Faça-o antes de contar palavras ou de alimentar outra coisa, senão o mobiliário repetido conta como conteúdo.

Artigos que podem interessar-lhe

Todos os guias
TutorialConverter um PDF em imagens quando um site recusa PDFMarketplaces, portais de emprego e formulários de apoio aceitam muitas vezes só JPEG e PNG. Converter é fácil; escolher a resolução é o que decide se o destinatário conseguirá ler o seu documento, e é o que todas as ferramentas lhe perguntam sem que ninguém explique.TutorialExtrair algumas páginas de um extrato sem instalar nadaUm senhorio quer a página 3. Um contabilista quer janeiro. Tem de enviar essas páginas e não as outras onze, e há uma armadilha: o método óbvio deixa as páginas retiradas dentro do ficheiro que envia.TutorialTransformar notas num PDF que valha a pena arquivarO texto simples não tem paginação, por isso qualquer conversor tem de inventar uma. Eis exatamente as decisões que este toma — página, margens, tipo de letra, quebras de linha —, o que faz com uma tabulação e com uma linha longa, e o que lhe cabe acrescentar para que uma nota valha a pena guardar.ExplicaçãoO seu PDF está direito para si e de lado para elesRodou a digitalização, guardou, e o destinatário abriu-a na mesma de lado. Nada está avariado — a rotação num PDF é uma instrução e não uma alteração da página, e as instruções podem ser ignoradas. Eis quando isso acontece e como produzir um ficheiro que não possa ser mal lido.TutorialComo pôr um PDF abaixo de um limite de 10 MBO formulário recusa o seu ficheiro e não dá conselho nenhum. O que funciona depende inteiramente de onde estão realmente os megabytes, e para um documento digitalizado a resposta não é a compressão mas a resolução. Eis como saber em dez segundos em que caso está.TutorialRepor um documento digitalizado na ordem em que foi impressoUm digitalizador frente e verso que apanhou um lado de cada vez, uma pilha enfiada ao contrário, uma página que saiu duas vezes. Reordenar não é a mesma operação que extrair páginas, e saber qual está a fazer diz-lhe o que acontece a tudo o que não é uma página.

Ferramentas relacionadas

Tudo o que aqui se descreve foi medido em agosto de 2026 executando estas ferramentas sobre ficheiros reais, e não deduzido do que uma ferramenta PDF deveria fazer. O comportamento dos PDF não é uniforme: o formato é definido pela norma ISO 32000, mas a ordem de leitura, as convenções de metadados e as caixas de página são lugares onde duas ferramentas aparentemente corretas divergem, e um ficheiro escrito por um produtor pouco comum pode comportar-se de forma diferente de todos os testados aqui. Antes de aplicar qualquer um destes tratamentos a um documento que não possa substituir, trabalhe sobre uma cópia e abra o resultado num leitor em que confie.

Fontes

Detetaste um erro neste artigo?