Pular para o conteúdo principal
Os idiomas chinês, japonês e coreano costumam ser agrupados sob a abreviação “CJK”. Eles têm várias características em comum, como o uso de caracteres chineses e a escrita tanto na vertical quanto na horizontal. Esta seção aborda algumas particularidades do reconhecimento e da exportação de textos em idiomas CJK com o ABBYY FineReader Engine 12. Primeiro, para reconhecer idiomas CJK, você deve ter uma licença do ABBYY FineReader Engine com suporte aos módulos de idioma chinês, japonês e coreano. Para mais informações sobre licenças e módulos, consulte a seção Licenciamento.

Idiomas de reconhecimento

O ABBYY FineReader Engine oferece suporte aos seguintes idiomas de reconhecimento predefinidos para textos CJK:
  • “ChinesePRC”
  • “ChineseTaiwan”
  • “Japanese”
  • “JapaneseModern”
  • “Korean”
  • “KoreanHangul”
Para selecionar um desses idiomas predefinidos, você pode usar o método SetPredefinedTextLanguage do objeto RecognizerParams.
O idioma de reconhecimento Japanese (Modern) é um idioma composto pelos idiomas japonês e inglês, além de quatro letras do alfabeto grego. Esse idioma se destina ao reconhecimento de textos japoneses contemporâneos, que podem incluir alguns caracteres Kanji, símbolos Kana (Katakana ou Hiragana), algumas letras latinas e/ou gregas (como relatórios, artigos de pesquisa etc.). Para obter os melhores resultados de reconhecimento em todos os documentos escritos principalmente em japonês, recomendamos fortemente usar o idioma de reconhecimento Japanese (Modern) como idioma independente, sem combiná-lo com o idioma inglês.
O ABBYY FineReader Engine oferece suporte a combinações de idiomas de reconhecimento formadas por vários desses idiomas ou por combinações de idiomas CJK com outros idiomas.

Fontes

Para evitar a distorção de caracteres asiáticos, você deve especificar, para a síntese do documento, uma fonte que inclua o conjunto necessário de caracteres, por exemplo, Arial Unicode MS e SimSun. Você pode definir a fonte usando a propriedade ISynthesisParamsForDocument::FontSet. Por padrão, a propriedade SystemFontSet do objeto FontSet é configurada para selecionar as fontes do sistema que correspondem aos idiomas de reconhecimento do documento.

Exportação

Você pode exportar idiomas CJK para PDF/A no modo “texto sob a imagem” (IPDFExportParams::TextExportMode = PEM_ImageOnText) para garantir que o documento mantenha a mesma aparência.

O procedimento de reconhecimento e exportação

Para processar documentos escritos em idiomas CJK, faça o seguinte:
  1. Crie um objeto DocumentProcessingParams usando o método CreateDocumentProcessingParams do objeto Engine.
  2. Especifique o idioma de reconhecimento. Use o método SetPredefinedTextLanguage do subobjeto RecognizerParams do subobjeto PageProcessingParams.
  3. Selecione o conjunto de fontes apropriado para idiomas CJK. Use a propriedade ISynthesisParamsForDocument::FontSet do subobjeto SynthesisParamsForDocument.
  4. Passe o objeto DocumentProcessingParams configurado para o método Process do objeto FRDocument. Se você usar métodos do objeto Engine, deverá chamar um dos métodos de síntese do objeto Engine com o objeto SynthesisParamsForDocument configurado como parâmetro antes de exportar.
  5. Exporte o texto reconhecido com a ajuda do método Export do objeto FRDocument. Se você exportar para o formato PDF ou PDF/A, especifique o modo de exportação necessário.
Não use o objeto Word e suas propriedades nem as propriedades IsWordFirst, IsWordLeftmost do objeto CharParams para textos escritos em idiomas CJK. A tecnologia de processamento divide as linhas de texto em “palavras” apenas para fins internos, e esses grupos de símbolos não correspondem às palavras reais.
// Presumimos que Engine já foi criado
// e o documento carregado
IEngine* Engine;
IFRDocument* frDocument;
HRESULT res; // use esta variável para verificar se a chamada ao método foi bem-sucedida
...
// Crie um objeto DocumentProcessingParams
IDocumentProcessingParams* params = 0;
IPageProcessingParams* pageParams = 0;
IRecognizerParams* recParams = 0;
res = Engine->CreateDocumentProcessingParams( ¶ms );
res = params->get_PageProcessingParams( &pageParams );
res = pageParams->get_RecognizerParams( &recParams );
 
// Especifique o idioma de reconhecimento
res = recParams->SetPredefinedTextLanguage( L"Japanese" );
 
ISynthesisParamsForDocument* synthesisParams = 0;
IFontSet* set = 0;
ISystemFontSet* systemSet = 0;
res = params->get_SynthesisParamsForDocument( &synthesisParams );
res = synthesisParams->get_FontSet( &set );
res = set->get_SystemFontSet( &systemSet );
 
// Selecione o conjunto de fontes
res = systemSet->put_FontNamesFilter( FNF_Japanese );
// Reconheça e exporte o documento
frDocument->Process( params );
frDocument->Export( L"/opt/Demo.rtf", FEF_RTF, 0 );
...
FREngine::IEnginePtr Engine;
FREngine::IFRDocumentPtr frDocument;
...
// Crie um objeto DocumentProcessingParams
FREngine::IDocumentProcessingParamsPtr pDocumentProcessingParams = Engine->CreateDocumentProcessingParams();
// Defina o idioma de reconhecimento
pDocumentProcessingParams->PageProcessingParams->RecognizerParams->SetPredefinedTextLanguage( "Japanese" );
// Selecione o conjunto de fontes
pDocumentProcessingParams->SynthesisParamsForDocument->FontSet->SystemFontSet->FontNamesFilter = FREngine::FNF_Japanese;
// Reconheça e exporte o documento
frDocument->Process( pDocumentProcessingParams );
frDocument->Export( L"D:\\Demo.rtf", FREngine::FEF_RTF, 0 );
...
FREngine.IEngine engine;
FREngine.IFRDocument frdoc;
...
// Crie um objeto DocumentProcessingParams
FREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();
// Defina o idioma de reconhecimento
dpp.PageProcessingParams.RecognizerParams.SetPredefinedTextLanguage( "Japanese" );
// Selecione o conjunto de fontes
dpp.SynthesisParamsForDocument.FontSet.SystemFontSet.FontNamesFilter = (int)FREngine.FontNamesFiltersEnum.FNF_Japanese;
// Reconheça e exporte o documento
frdoc.Process( dpp );
frdoc.Export( "D:\\Demo.rtf", FREngine.FileExportFormatEnum.FEF_RTF, null );
...

Veja também

Como trabalhar com idiomas