Extrator de Texto de PDF

Extraia o texto simples de um PDF diretamente no navegador — lê a camada de texto incorporada do documento, sem envio, sem OCR.

236 visualizações

O Que Realmente É a Camada de Texto de um PDF

Um PDF não é uma imagem de uma página - pelo menos, não geralmente. Quando um PDF é produzido a partir de um processador de texto, uma página web ou software de composição tipográfica, o conteúdo da página é armazenado como uma sequência de instruções de desenho: "colocar o glifo G na posição (x, y) usando a fonte F no tamanho S", repetida para cada caractere na página. Cada uma dessas instruções de posicionamento de glifo carrega uma referência de volta à tabela de codificação de caracteres de uma fonte, o que é como o software consegue mapear a forma desenhada de volta a um caractere Unicode real, em vez de apenas uma imagem dele. Esta ferramenta funciona carregando o PDF com a biblioteca de código aberto pdf.js da Mozilla e chamando sua API getTextContent() em cada página - crucialmente, isso lê esse fluxo de instruções diretamente, sem nunca renderizar a página em pixels, então funciona mesmo num dispositivo sem aceleração gráfica e é executado quase instantaneamente em comparação com a renderização.

Isso é fundamentalmente diferente de um PDF digitalizado, que é o que você obtém quando um documento em papel é fotografado ou passado por um scanner e salvo como PDF - nesse caso, a "página" é apenas uma imagem JPEG ou TIFF de página inteira sem nenhuma instrução de glifo por trás dela, porque nenhum software jamais soube o que o texto dizia; apenas capturou pixels. Chamar getTextContent() numa página digitalizada retorna nada, ou quase nada, porque não há camada de texto para ler - a informação genuinamente não está no arquivo, da mesma forma que você não consegue selecionar texto numa página digitalizada num visualizador de PDF normal. Recuperar texto de um documento digitalizado requer uma técnica completamente diferente, o OCR (reconhecimento óptico de caracteres), que analisa as formas dos pixels e tenta adivinhar os caracteres; esse é um processo fundamentalmente diferente, muito mais sujeito a erros, que esta ferramenta não realiza. Se o seu PDF for uma digitalização, procure uma ferramenta dedicada de imagem para texto (OCR) - há uma planejada separadamente neste site.

Por Que o Texto Extraído Pode Sair Fora de Ordem

Um problema mais sutil afeta até PDFs que têm uma camada de texto real: getTextContent() retorna itens de posicionamento de glifo na ordem em que foram originalmente desenhados quando o PDF foi gerado - não necessariamente a ordem em que um humano os leria. A maioria dos documentos simples de coluna única é desenhada de cima para baixo, da esquerda para a direita, correspondendo à ordem de leitura natural, então a extração parece correta. Mas um exportador de PDF é livre para desenhar o conteúdo em qualquer sequência que escolher, e muitos não preservam a ordem visual: um artigo acadêmico de duas colunas, um layout de revista, uma tabela, ou um PDF com caixas de texto e chamadas pode facilmente ter sua ordem de desenho intercalada ou completamente invertida em relação a como o olho de um leitor se moveria pela página, porque a especificação define posição, não sequência de leitura. Esta ferramenta concatena os itens de cada página na ordem em que o pdf.js os relata e separa as páginas com um marcador claro --- Página N --- para que você possa ver exatamente de qual página cada bloco veio e reordenar manualmente um resultado de várias colunas, se necessário.

  • Nada é enviado: o PDF é analisado inteiramente no lado do cliente usando o pdf.js executado no seu navegador; o arquivo nunca chega ao servidor deste site.
  • PDFs protegidos por senha não abrirão - esta ferramenta não tenta contornar a criptografia ou as permissões do PDF.
  • O espaçamento extraído pode diferir do layout visual - tabelas em particular frequentemente são extraídas como uma sequência simples de valores de célula em vez de uma grade formatada, já que o PDF não tem um conceito nativo de "tabela" como o HTML tem.
  • Documentos de várias páginas recebem marcadores de página para que você possa saber onde o conteúdo de uma página termina e o próximo começa, já que as páginas de PDF são, de outra forma, fluxos de conteúdo independentes sem quebra de parágrafo inerente entre elas.

Perguntas Frequentes

Por que obtive um resultado vazio ou quase vazio?

Seu PDF muito provavelmente é uma imagem digitalizada - uma fotografia ou digitalização de uma página de papel salva como PDF sem texto incorporado, apenas uma imagem. Esta ferramenta lê diretamente a camada de texto do PDF e não realiza OCR (reconhecimento óptico de caracteres), então uma página digitalizada sem camada de texto não retorna nada para ler.

Por que o texto extraído está fora de ordem num PDF de duas colunas?

O PDF armazena o conteúdo como instruções de desenho na sequência que o software exportador escolheu, o que não é garantido corresponder à ordem de leitura visual. Um layout de duas colunas, tabela ou página estilo revista pode intercalar texto de ambas as colunas porque o formato do arquivo define posições de glifos, não uma sequência de leitura.

Esta ferramenta realiza OCR em documentos digitalizados?

Não. Esta ferramenta apenas lê a camada de texto incorporada já existente de um PDF via a API getTextContent() do pdf.js - não analisa pixels nem reconhece caracteres numa imagem. Para documentos digitalizados sem camada de texto, uma ferramenta de imagem para texto (OCR) é uma tecnologia separada e diferente.

Meu PDF é enviado a um servidor?

Não - toda a extração acontece no seu navegador usando a biblioteca de código aberto pdf.js. O arquivo é lido localmente via a File API e nunca é transmitido para lugar nenhum.

Por que a saída tem marcadores "--- Página N ---"?

Cada página de PDF é um fluxo de conteúdo separado com seus próprios itens de texto e nenhuma conexão inerente com a próxima página. Os marcadores de página deixam claro onde o texto extraído de uma página termina e o próximo começa, o que importa para documentos onde parágrafos ou frases continuam através de uma quebra de página.

Comentários

Ainda não há comentários — seja o primeiro a escrever um!

Ferramentas Semelhantes