Código aberto

arabic-pdf-repair: volte a copiar o texto árabe de PDFs antigos

Uma biblioteca e ferramenta de linha de comando gratuitas e de código aberto, do GenPDF, para PDFs cujo texto árabe é colado como caracteres ilegíveis tipo ÇáÚÑÈíÉ, como quadradinhos ou com letras erradas. Ela adiciona a correspondência que falta entre cada glifo e sua letra, para que o texto possa ser copiado, pesquisado e extraído, e as páginas ficam exatamente como eram.

Por que o texto árabe copiado de um PDF fica ilegível

Um PDF desenha cada letra com uma forma tirada de uma fonte. Para copiar ou pesquisar o texto, o leitor precisa de uma tabela no arquivo, chamada ToUnicode, que diga qual letra cada forma representa. Muitos PDFs em árabe criados por drivers de impressora antigos do Windows, Ghostscript, PDFCreator ou programas de editoração árabes não têm essa tabela, ou têm uma errada.

A página aparece certa, mas o texto copiado é colado como letras latinas tipo ÇáÚÑÈíÉ, como quadradinhos vazios ou como letras hebraicas; a pesquisa não encontra nada, e a extração de texto, os leitores de tela e as ferramentas de IA leem coisas sem sentido.

O que ela corrige

  • Fontes cujos glifos têm nomes árabes (afii57xxx, afii62xxx, uniFE91 e parecidos).
  • Árabe guardado nas posições de letras latinas: Windows-1256, ISO-8859-6 e Mac Arabic, o texto que é copiado como ÇáÚÑÈíÉ.
  • Fontes Diwan XT de programas de editoração árabes, incluindo suas cópias compactas (CFF).
  • Letras persas e urdus, e tabelas só em parte corretas: as entradas corretas são mantidas.
  • Arquivos criptografados que abrem sem senha (RC4, AES-128 e AES-256).

Como usar

Com Node.js 20 ou mais recente, um único comando corrige um arquivo e grava old.repaired.pdf ao lado dele, sem instalar nada:

npx arabic-pdf-repair old.pdf

No seu próprio código, instale pelo npm e passe os bytes de um PDF para repairTextLayer: ela retorna o arquivo corrigido, ou null quando não há nada a corrigir. A biblioteca também roda no navegador e em web workers.

npm install arabic-pdf-repair

É seguro usar nos meus arquivos?

  • As páginas ficam exatamente iguais: só é adicionada a correspondência entre glifos e letras.
  • Não faz chamadas de rede nem envia telemetria: seus arquivos ficam no seu computador.
  • Só altera uma fonte quando a fonte ou a página de código comprova suas letras, e não adivinha nada.
  • O arquivo original nunca é sobrescrito.
  • As versões são geradas no GitHub e publicadas com proveniência do npm, então qualquer pessoa pode verificar de qual código cada versão veio.

O que ela não faz

  • Não faz OCR: uma página digitalizada é uma imagem, sem texto para corrigir. Para ler digitalizações, use o OCR do GenPDF.
  • Não reordena o texto: a ordem das palavras copiadas é decidida pelo seu leitor de PDF.
  • O arquivo é regravado, então uma assinatura digital deixa de ser válida. Guarde o original assinado.
  • Arquivos que pedem senha para abrir ficam como estão.

A mesma correção, no editor do GenPDF

Esta biblioteca é a correção da camada de texto que o editor do GenPDF aplica ao abrir um arquivo, publicada separadamente. O editor em si não é de código aberto. Para mudar as palavras de um PDF em árabe, e não só corrigir o texto, abra-o no editor do GenPDF ou veja como editar texto árabe em um PDF.

Licença

Livre para usar, alterar e compartilhar sob a licença Apache 2.0, em projetos pessoais e comerciais. Relate um problema ou sugira uma correção no GitHub.