OCR em PDFs escaneados para texto: guia do OCR It (OCR offline)

OCR em PDFs escaneados para texto: guia do OCR It (OCR offline)

Livros escaneados e leitores de PDF travados têm o mesmo problema: você consegue ler, mas o seu LLM não. Sem texto selecionável, sem como copiar um parágrafo, nada para colar no Claude ou no ChatGPT. O OCR It é uma extensão gratuita e licenciada sob MIT para Chrome/Firefox, feita pela equipe do Firecrawl, que inverte esse jogo — você fixa uma região da tela uma vez e usa atalhos de teclado para percorrer o documento inteiro até gerar uma transcrição em texto. Ele roda 100% offline com uma build do Tesseract embutida: sem chave de API, sem rede, sem requisições externas. Seu documento nunca sai da máquina.

Ideia central: fixe uma vez, atalho em cada página

Três atalhos cobrem todo o fluxo de trabalho (no Windows/Linux, Alt substitui Option):

⌥⇧R   Desenhar / redesenhar a região de captura
⌥⇧S   Capturar a região uma vez (o OCR roda em segundo plano)
⌥⇧A   Iniciar / parar uma execução automática (captura → virar página → repetir)

Modo manual: pressione ⌥⇧R, arraste um retângulo sobre o texto, ajuste-o pixel por pixel com as setas (Shift+seta redimensiona) e aperte Enter. Depois, pressione ⌥⇧S uma vez por página. As capturas entram em fila e o OCR roda em segundo plano, então você nunca espera entre páginas — o selo no ícone da barra de ferramentas conta o que ainda está sendo processado.

Modo automático: o ⌥⇧A assume o controle por completo: captura de tela, virar a página, repetir até o fim do documento. Esc na página interrompe. Ao terminar, Copy all ou Download .txt entrega as páginas em ordem com separadores --- page N --- — prontas para entregar a um LLM.

Virada de página que sobrevive a iframes e Shadow DOM

A maioria dos leitores embutidos usa iframes — muitas vezes cross-origin, às vezes envoltos em Shadow DOM — onde um seletor CSS não alcança. O truque do OCR It: você armazena um ponto, não um seletor. Clique em Pick control e clique no botão de próxima página do leitor; o que fica salvo é a posição do clique. Um ponto armazenado sobrevive às re-renderizações do DOM que invalidam seletores e, na hora de avançar, é oferecido a todos os frames — aquele que realmente o contém é que age. Atravessando uma fronteira de origem, o pai repassa o deslocamento via postMessage. Alternativamente, você pode despachar um evento de teclado (padrão: ArrowRight) para o frame que contém o centro da sua região. Use Test now antes de iniciar uma execução longa — ele dispara um avanço imediatamente, sem capturar.

Compile você mesmo

Uma árvore de código, dois alvos:

git clone https://github.com/thiagotigaz/ocr-it.git
cd ocr-it
npm run build          # -> build/chrome, build/firefox

Chrome: chrome://extensions → ative o Modo do desenvolvedor → Carregar sem compactação → selecione build/chrome (a raiz do repositório em si já é uma extensão válida como está no controle de versões, então nenhum passo de build é estritamente necessário). Firefox: about:debugging#/runtime/this-firefox → Carregar complemento temporário → build/firefox/manifest.json. Tudo o que é necessário já está commitado — npm install serve apenas para testes e para re-empacotar o Tesseract.

Depois de instalar, confira chrome://extensions/shortcuts: o Chrome silenciosamente apaga um atalho quando outra extensão já o reivindica. O Firefox não tem um editor de atalhos navegável — use about:addons → ícone de engrenagem → Gerenciar atalhos da extensão.

A extensão pede nenhum acesso a sites na instalação. Capturas únicas usam activeTab; uma permissão duradoura só é solicitada quando você ativa uma execução automática que sobrevive ao carregamento de uma página ou precisa virar páginas dentro de um iframe cross-origin — o popup oferece um botão Allow para o site em que você está.

Onde brilha — e onde não

  • Ótimo para: páginas limpas e de layout simples — livros escaneados, apresentações de slides, artigos presos em leitores travados. O benchmark do fundador afirma cerca de 20ms por página e ~300x mais rápido que o Docling em qualidade comparável; trate isso como um número de manchete e verifique no seu próprio hardware.
  • Atenção com: páginas que misturam cabeçalhos, rodapés, tabelas, fórmulas matemáticas e parágrafos de corpo — layouts complexos ainda o derrubam. Desenhe a região um pouco dentro das margens do texto para que números de página e cabeçalhos correntes não poluam a transcrição.
  • Proteções embutidas: uma execução para automaticamente quando vê duas páginas idênticas em sequência (o documento não virou), não consegue virar a página, sofre uma falha de OCR ou atinge o limite de 300 páginas — uma execução travada não fica em loop para sempre.
  • Checagens embutidas: o popup lista cada página com uma miniatura de exatamente o que foi recortado, contagem de caracteres e confiança do OCR, então uma região desalinhada fica óbvia na hora, em vez de oitenta páginas depois. Páginas marcadas como DUPLICATE significam que o documento não avançou de verdade.

Recursos

Notícias Relacionadas