Reconocimiento de los idiomas chino, japonés y coreano
Los idiomas chino, japonés y coreano suelen agruparse bajo la abreviatura “CJK”. Comparten varias características, como el uso de caracteres chinos y la escritura tanto vertical como horizontal.En esta sección se abordan algunas peculiaridades del reconocimiento y la exportación de textos en idiomas CJK con ABBYY FineReader Engine 12.En primer lugar, para reconocer idiomas CJK, debe disponer de una licencia de ABBYY FineReader Engine compatible con los módulos de idioma chino, japonés y coreano. Para obtener más información sobre las licencias y los módulos, consulte la sección Licencias.
El idioma de reconocimiento Japanese (Modern) es un idioma compuesto por japonés, inglés y cuatro letras del alfabeto griego. Este idioma está pensado para reconocer textos japoneses contemporáneos, que pueden incluir algunos caracteres kanji, símbolos kana (katakana o hiragana) y algunas letras latinas y/o griegas (como informes, artículos de investigación, etc.). Para obtener los mejores resultados de reconocimiento en todos los documentos redactados principalmente en japonés, recomendamos encarecidamente usar el idioma de reconocimiento Japanese (Modern) como idioma independiente, sin combinarlo con el idioma inglés.
ABBYY FineReader Engine admite combinaciones de idiomas de reconocimiento formadas por varios de estos idiomas, o por combinaciones de idiomas CJK y otros idiomas.
Para evitar que los caracteres asiáticos aparezcan corruptos, debe especificar para la síntesis del documento una fuente que incluya el conjunto de caracteres necesario, por ejemplo, Arial Unicode MS o SimSun. Puede configurar la fuente mediante la propiedad ISynthesisParamsForDocument::FontSet. De forma predeterminada, la propiedad SystemFontSet del objeto FontSet está configurada para seleccionar las fuentes del sistema que correspondan a los idiomas de reconocimiento del documento.
Puede exportar idiomas CJK a PDF/A en el modo «texto bajo la imagen» (IPDFExportParams::TextExportMode = PEM_ImageOnText) para garantizar que el documento se vea igual.
Pase el objeto DocumentProcessingParams configurado al método Process del objeto FRDocument. Si usa métodos del objeto Engine, antes de exportar debe llamar a uno de los métodos de síntesis del objeto Engine con el objeto SynthesisParamsForDocument configurado como parámetro.
Exporte el texto reconocido con ayuda del método Export del objeto FRDocument. Si exporta al formato PDF o PDF/A, especifique el modo de exportación requerido.
No utilice el objeto Word ni sus propiedades, ni las propiedades IsWordFirst, IsWordLeftmost del objeto CharParams para textos escritos en idiomas CJK. La tecnología de procesamiento divide las líneas de texto en “palabras” solo con fines internos, y esos grupos de símbolos no coinciden con las palabras reales.
Código C++
// Suponemos que Engine ya se creó// y que el documento se cargóIEngine* Engine;IFRDocument* frDocument;HRESULT res; // use esta variable para comprobar si la llamada al método se realizó correctamente...// Cree un 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 el idioma de reconocimientores = 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 );// Seleccione el conjunto de fuentesres = systemSet->put_FontNamesFilter( FNF_Japanese );// Reconozca y exporte el documentofrDocument->Process( params );frDocument->Export( L"/opt/Demo.rtf", FEF_RTF, 0 );...
Código C++ (COM)
FREngine::IEnginePtr Engine;FREngine::IFRDocumentPtr frDocument;...// Crear un objeto de DocumentProcessingParamsFREngine::IDocumentProcessingParamsPtr pDocumentProcessingParams = Engine->CreateDocumentProcessingParams();// Especificar el idioma de reconocimientopDocumentProcessingParams->PageProcessingParams->RecognizerParams->SetPredefinedTextLanguage( "Japanese" );// Seleccionar el conjunto de fuentespDocumentProcessingParams->SynthesisParamsForDocument->FontSet->SystemFontSet->FontNamesFilter = FREngine::FNF_Japanese;// Reconocer y exportar el documentofrDocument->Process( pDocumentProcessingParams );frDocument->Export( L"D:\\Demo.rtf", FREngine::FEF_RTF, 0 );...
Código C#
FREngine.IEngine engine;FREngine.IFRDocument frdoc;...// Crear un objeto de DocumentProcessingParamsFREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();// Especificar el idioma de reconocimientodpp.PageProcessingParams.RecognizerParams.SetPredefinedTextLanguage( "Japanese" );// Seleccionar el conjunto de fuentesdpp.SynthesisParamsForDocument.FontSet.SystemFontSet.FontNamesFilter = (int)FREngine.FontNamesFiltersEnum.FNF_Japanese;// Reconocer y exportar el documentofrdoc.Process( dpp );frdoc.Export( "D:\\Demo.rtf", FREngine.FileExportFormatEnum.FEF_RTF, null );...