TK TaskKit
Ferramentas PDF

Extrair texto

Extrai texto legível de um PDF. O ficheiro é parseado localmente; nunca recebemos um único byte.

Os ficheiros ficam no teu dispositivo. Os PDFs são lidos, juntados e gravados inteiramente dentro do teu navegador. Nunca recebemos um único byte do teu ficheiro.

O que esta ferramenta faz

Este extrator puxa o conteúdo textual de um PDF. Larga um ficheiro, opcionalmente ativa "preservar quebras de linha", e obténs o texto em bruto à direita — com cada página apresentada por um pequeno marcador (--- Página N ---). O texto pode ser copiado para a área de transferência ou descarregado como ficheiro .txt em UTF-8. O parsing acontece inteiramente no teu navegador via pdf.js; o PDF nunca é enviado.

Quando usar

  • Pesquisar uma frase num relatório, contrato ou tese longa sem pagar uma suite de desktop.
  • Alimentar o corpo de um PDF a um summarizador, tradutor ou prompt de LLM que quer texto simples.
  • Extrair o resumo ou as referências de um artigo académico para colar num gestor de citações.
  • Exportar transcrições de chat ou email que chegaram como PDFs para um formato que os teus scripts conseguem grep.
  • Verificar a camada de OCR num documento digitalizado — a ausência de texto reconhecível aqui significa que o PDF é só imagem e precisa de OCR primeiro.

Como funciona

O pdf.js expõe um método getTextContent() em cada página que devolve as runs de texto da página pela ordem em que aparecem no content stream do documento, juntamente com a matriz de transformação de cada run (um array de seis elementos cujo índice 5 é a coordenada y). Com o toggle desligado, os items são unidos com espaços simples — rápido e consistente, mas as newlines que o PDF original expressava visualmente perdem-se. Com Preservar quebras de linha ativado, a ferramenta percorre os items e insere um \n sempre que a coordenada y salta mais de ~5 pixéis — uma heurística que recupera fronteiras de parágrafo e linha surpreendentemente bem em PDFs baseados em texto.

As páginas são separadas com um marcador literal --- Página N --- para que ao colar o resultado numa caixa de pesquisa ou ao fazer grep, ainda consigas encontrar a página que queres. A codificação é UTF-8, o que significa que diacríticos latinos, cirílico, CJK e árabe fazem round-trip sem mojibake.

O worker do pdf.js é empacotado como recurso same-origin emitido pelo Vite em build. Não há chamada a CDN de terceiros, sem telemetria e sem cópia do teu texto retida depois de o separador fechar.

Notas

Porque é que o resultado está vazio para alguns PDFs? Os PDFs vêm em duas variedades: os que têm uma camada de texto real (do tipo que exportadores como Word, LaTeX e Chrome produzem) e os que são imagens de páginas (digitalizações, faxes, alguns relatórios antigos). O pdf.js só consegue extrair do primeiro tipo. Se o painel não devolve nada, o teu PDF é só imagem e precisas de OCR — experimenta uma ferramenta como o Tesseract.js ou um pipeline de OCR de desktop antes de extrair de novo.

Porque é que as colunas às vezes se intercalam? Os PDFs não armazenam parágrafos; armazenam runs de glifos em coordenadas específicas. Layouts de duas colunas podem parecer bem no ecrã mas dão-nos runs intercalados porque os items aparecem em ordem de stream, não em ordem visual. A heurística de coordenada y ajuda em documentos de coluna única; para PDFs multi-coluna complicados, podes precisar de limpar a saída manualmente.

As tabelas são preservadas? As células passam como texto mas a estrutura de colunas não — não há conceito de "esta célula alinha com aquela célula" no stream subjacente. Para dados tabulares, procura uma exportação CSV da origem se possível.

O resultado é o mesmo que "Ver → Selecionar tudo → Copiar" num leitor de PDF? Próximo, mas não idêntico. O copy ao nível do leitor usa a stack de tratamento de texto do SO, que por vezes adiciona espaços e quebras de forma diferente. Esta ferramenta mantém-se próxima do stream de items em bruto do pdf.js, com uma heurística opcional de newline por cima.

Ferramentas relacionadas