Se PDF parecer correto, mas colar em um editor de texto simples produzir caracteres diferentes, verifique a causa antes de alterar as fontes ou executar OCR. O mapeamento entre a forma desenhada na página e o caractere que ela representa pode estar errado. A correção desses erros de texto PDF começa com a identificação de qual parte desse processo falhou.
Por que o texto pode parecer correto, mas ser copiado incorretamente?
O conteúdo de texto PDF pode armazenar códigos de caracteres de origem específicos de fonte em vez de texto Unicode. Um leitor PDF usa as informações de fonte e codificação para localizar e desenhar um glifo. A cópia também requer a tradução desses códigos em caracteres significativos.
Desenhar a letra A, portanto, não garante que a extração retornará A. ToUnicode é um mapeamento em um dicionário de fontes que associa códigos de caracteres de origem PDF a sequências de caracteres Unicode. Esta distinção entre exibir e extrair texto é descrita em Referência Adobe PDF, seção 5.9.

O que realmente significa mapeamento de fontes?
Esses três conceitos estão relacionados, mas não são intercambiáveis:
| Mapeamento | Papel principal |
|---|---|
A tabela cmap dentro de um arquivo de fonte | Mapeia códigos de caracteres para índices de glifos; As subtabelas Unicode usam códigos Unicode |
| Codificação PDF; fontes compostas podem usar um Encoding CMap | Interpreta códigos de caracteres fonte PDF e ajuda a localizar o glifo para desenhar |
PDF ToUnicode | Mapeia códigos de caracteres fonte PDF para texto Unicode para cópia e extração |
Para o primeiro tipo, consulte Especificação OpenType cmap. O reparo discutido aqui visa o terceiro; ele não reconstrói o arquivo de fonte nem substitui os glifos na página.
Um mapeamento ToUnicode ausente nem sempre causa texto ilegível. Um leitor PDF às vezes pode recuperar texto de uma codificação padrão, nomes de glifos conhecidos ou uma coleção de caracteres. Por outro lado, uma tabela de mapeamento pode existir e ainda conter associações incorretas.
Primeiro verifique se o mapeamento é o problema
Copie uma pequena passagem em um editor de texto simples e compare-a com a página original:
| Sintoma | O que verificar primeiro |
|---|---|
| A página parece correta, mas os caracteres copiados se transformam consistentemente em outros caracteres | Mapeamentos de caracteres ausentes ou incorretos |
| Você pode selecionar apenas uma imagem, não um texto | Uma camada de texto ausente ou texto convertido em contornos; considere o arquivo de origem ou OCR |
| O texto pode ser selecionado em uma página digitalizada, mas não corresponde à imagem | Resultados de reconhecimento na camada de texto OCR |
| Os caracteres individuais estão corretos, mas as colunas ou tabelas estão fora de ordem | Ordem de leitura e extração de layout |
| A própria página contém caracteres ou caixas ausentes | Recursos de fonte, cobertura de glifos ou codificação de exibição |
Estas são pistas de solução de problemas, não diagnósticos baseados apenas na aparência. A incorporação de fontes e a cópia correta também são preocupações distintas; veja Incorporação e subconjuntos de fontes PDF.
Como você pode corrigir o texto copiado usando os glifos originais?
Suponha que o código-fonte <0001> em uma fonte específica desenhe A, mas mapeie incorretamente para 错 (U+9519). Este é um fragmento de mapeamento ilustrativo, não um arquivo CMap completo:
Before: <0001> <9519>
After: <0001> <0041>
<0001> é um código-fonte PDF nessa fonte, não o caractere Unicode U+0001. Mapeá-lo para U+0041 especifica que o glifo representa A. Um ligature (várias letras compartilhando um glifo) também pode precisar ser mapeado para vários caracteres Unicode, como fi.
Depois de confirmar que o reparo do mapeamento é apropriado, use Ferramenta de reparo de texto PDF:
- Selecione PDF e selecione a fonte a ser corrigida.
- Compare os glifos originais na grade e insira o texto correto abaixo de cada glifo.
- Exporte o PDF reparado e guarde o original para comparação.
Uma alteração se aplica a todos os lugares em que a mesma fonte e código-fonte são usados. Verifique fontes distintas separadamente, mesmo quando seus nomes corresponderem. Se OCR reconheceu incorretamente apenas uma palavra, o remapeamento global de um caractere também poderá danificar o texto que já estava correto.
Como você verifica o reparo?
Abra novamente o arquivo exportado e copie e pesquise o texto de amostra no leitor PDF de destino. Verifique outras ocorrências do mesmo código e fontes que você não editou. Compare a aparência da página e inspecione pontuação, ligaduras e números, em vez de testar apenas o primeiro caractere incorreto.
Alguns PDFs também usam ActualText para fornecer texto de substituição, que o software de suporte pode preferir. Se a alteração de ToUnicode não resolver o problema, verifique esta substituição. A ferramenta atual avisa sobre ActualText, mas não o edita. Veja o Explicação da associação PDF.
Para erros OCR, corrija ou reconheça a camada de texto novamente. Se você tiver o arquivo de layout original, considere corrigi-lo e exportar um novo PDF. Arquivos que não abrem ou provocam erros estruturais precisam de uma abordagem diferente; veja quando o reparo do formato PDF é apropriado.
Depois de identificar um problema de mapeamento de caracteres de fonte, corrija-o com ferramenta local de reparo de texto PDF. Os arquivos são processados em seu navegador sem carregá-los. Você ainda deve verificar o texto copiado e a aparência da página após a exportação.


