Texto Deturpado em PDFs Pesquisáveis para Escritas Não Latinas
OCR um documento com IronOCR, salve-o como um PDF pesquisável, e o texto reconhecido pode parecer correto na tela, mas se transformar em um absurdo quando você o copia ou extrai. Isso acontece quando a fonte do PDF não tem glifos para o script que você reconheceu, e é comum com scripts não latinos e complexos. A solução é salvar o PDF com uma fonte que suporte seu script; o exemplo abaixo usa Gujarati.
O texto reconhecido não tem caracteres correspondentes para mapear, então o texto copiado sai deturpado, mesmo que o OCR tenha lido a página corretamente. Uma fonte somente latina não resolverá isso: a fonte que você fornece tem que cobrir o script que você realmente reconheceu.
Pré-requisitos
- IronOCR com o pacote de idioma para o seu script. Este exemplo usa
OcrLanguage.GujaratiBest. - Uma fonte TrueType que suporta seu script alvo. Este exemplo usa AnekGujarati, disponível gratuitamente no Google Fonts.
- O caminho completo para esse arquivo de fonte.
Solução
1. Coloque uma Fonte que Cobre Seu Script
Encontre uma fonte que inclua glifos para seu script alvo, coloque-a na máquina e anote seu caminho completo. Para o exemplo Gujarati:
C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf
O nome de arquivo de variável-fonte AnekGujarati contém uma vírgula, então copie-o exatamente. O caminho deve apontar para o arquivo de fonte exato.
2. Passe a Fonte para SalvarComoPdfPesquisável
Ao salvar o PDF pesquisável, forneça o caminho para sua fonte capacitada para o script como o argumento CustomFontFile (3º). O 4º argumento é um rótulo CustomFontName opcional; se você omití-lo, o IronOCR usa o próprio nome do arquivo de fonte:
ocrResult.SaveAsSearchablePdf(
strOutputFile,
false,
@"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
"AnekGujarati");
ocrResult.SaveAsSearchablePdf(
strOutputFile,
false,
@"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
"AnekGujarati");
ocrResult.SaveAsSearchablePdf( _
strOutputFile, _
False, _
"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf", _
"AnekGujarati")
O argumento que corrige a extração deturpada é o arquivo de fonte (3º parâmetro): ele deve conter glifos para o script que você fez OCR. O 4º parâmetro apenas nomeia a fonte incorporada e não afeta o mapeamento do script. Para um documento diferente, aponte o 3º parâmetro para uma fonte que suporte aquele script.
3. Confirme as Extrações de Texto
Abra o PDF gerado e copie o texto reconhecido para verificar se agora ele é extraído corretamente. Se ainda aparecer deturpado, a fonte fornecida quase certamente não tem glifos para seu script; reverifique se a fonte realmente o cobre.
Notas
- Não específico para Gujarati: qualquer script não latino ou complexo pode mostrar texto copiado deturpado quando a fonte do PDF não o cobre, incluindo Devanagari (Hindi, Marathi), Árabe, Tailandês, e texto Chinês, Japonês ou Coreano.
- Uma fonte por script: forneça uma fonte que inclua o script que você reconheceu. A família Noto do Google é uma opção ampla, com fontes por script como Noto Sans Gujarati, Noto Sans Devanagari e Noto Sans Arabic.

