Reconhecimento de idiomas chinês, japonês e coreano
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.
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.
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.
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.
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.
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.
Código C++
// Presumimos que Engine já foi criado// e o documento carregadoIEngine* Engine;IFRDocument* frDocument;HRESULT res; // use esta variável para verificar se a chamada ao método foi bem-sucedida...// Crie um objeto DocumentProcessingParamsIDocumentProcessingParams* 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 reconhecimentores = 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 fontesres = systemSet->put_FontNamesFilter( FNF_Japanese );// Reconheça e exporte o documentofrDocument->Process( params );frDocument->Export( L"/opt/Demo.rtf", FEF_RTF, 0 );...
Código C++ (COM)
FREngine::IEnginePtr Engine;FREngine::IFRDocumentPtr frDocument;...// Crie um objeto DocumentProcessingParamsFREngine::IDocumentProcessingParamsPtr pDocumentProcessingParams = Engine->CreateDocumentProcessingParams();// Defina o idioma de reconhecimentopDocumentProcessingParams->PageProcessingParams->RecognizerParams->SetPredefinedTextLanguage( "Japanese" );// Selecione o conjunto de fontespDocumentProcessingParams->SynthesisParamsForDocument->FontSet->SystemFontSet->FontNamesFilter = FREngine::FNF_Japanese;// Reconheça e exporte o documentofrDocument->Process( pDocumentProcessingParams );frDocument->Export( L"D:\\Demo.rtf", FREngine::FEF_RTF, 0 );...
Código C#
FREngine.IEngine engine;FREngine.IFRDocument frdoc;...// Crie um objeto DocumentProcessingParamsFREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();// Defina o idioma de reconhecimentodpp.PageProcessingParams.RecognizerParams.SetPredefinedTextLanguage( "Japanese" );// Selecione o conjunto de fontesdpp.SynthesisParamsForDocument.FontSet.SystemFontSet.FontNamesFilter = (int)FREngine.FontNamesFiltersEnum.FNF_Japanese;// Reconheça e exporte o documentofrdoc.Process( dpp );frdoc.Export( "D:\\Demo.rtf", FREngine.FileExportFormatEnum.FEF_RTF, null );...