Use this file to discover all available pages before exploring further.
ABBYY FineReader Engine no admite actualmente el ICR árabe. Sin embargo, sí es posible reconocer específicamente dígitos arábigos, y en este artículo se describen los pasos necesarios.Además del procedimiento descrito en Reconocimiento de texto manuscrito, para reconocer dígitos arábigos debe crear un idioma personalizado con un alfabeto compuesto únicamente por 10 símbolos numéricos y establecerlo como idioma de reconocimiento para cada bloque con dígitos.Por lo tanto, para reconocer dígitos arábigos manuscritos, haga lo siguiente:
Mediante la propiedad LetterSet del objeto BaseLanguage dentro del objeto TextLanguage, establezca un alfabeto de idioma que contenga los siguientes caracteres: ٠١٢٣٤٥٦٧٨٩.
Para cada bloque que contenga dígitos arábigos manuscritos, especifique los parámetros de reconocimiento mediante la propiedad ITextBlock::RecognizerParams:
Establezca la propiedad TextTypes del objeto RecognizerParams en TT_Handwritten.
Si los dígitos están encerrados en un marco, recuadro, etc., configure el tipo de marca alrededor de los caracteres en la propiedad FieldMarkingType del objeto RecognizerParams. Si cada dígito está escrito en una celda independiente, use también la propiedad CellsCount para configurar el número de celdas de caracteres del bloque.
// Objeto global de ABBYY FineReader EngineFREngine::IEnginePtr Engine;...// Abrir un archivo de imagen...// Crear un idioma personalizadoFREngine::ILanguageDatabasePtr pLanguageDatabase = Engine->CreateLanguageDatabase();FREngine::ITextLanguagePtr pTextLanguage = pLanguageDatabase->CreateTextLanguage();FREngine::IBaseLanguagesPtr pBaseLanguages = pTextLanguage->BaseLanguages;FREngine::IBaseLanguagePtr pBaseLanguage = pBaseLanguages->AddNew();// Establecer el alfabetopBaseLanguage->put_LetterSet( FREngine::BLLS_Alphabet, L"٠١٢٣٤٥٦٧٨٩" );// Obtener el objeto Layout de la páginaFREngine::ILayoutPtr layout = frPage->get_Layout();// Establecer la región del bloqueFREngine::IRegionPtr pRegion = Engine->CreateRegion();pRegion->AddRect( 491, 314, 2268, 404 );// Crear un bloqueFREngine::IBlockPtr newBlock = layout->Blocks->AddNew( FREngine::BT_Text, pRegion, 0 );FREngine::ITextBlockPtr textBlock = newBlock->GetAsTextBlock();// Establecer el idioma personalizadotextBlock->RecognizerParams->TextLanguage = pTextLanguage;// Especificar el tipo de textotextBlock->RecognizerParams->TextTypes = FREngine::TT_Handwritten;// Especificar el tipo de marcado alrededor de las letrastextBlock->RecognizerParams->FieldMarkingType = FREngine::FMT_SimpleText;// Reconocimiento y exportación...
Código C#
// Objeto global de ABBYY FineReader EngineFREngine.IEngine engine;...// Abrir un archivo de imagen...// Crear un idioma personalizadoFREngine.ILanguageDatabase languageDatabase = engine.CreateLanguageDatabase();FREngine.ITextLanguage textLanguage = languageDatabase.CreateTextLanguage();FREngine.IBaseLanguages baseLanguages = textLanguage.BaseLanguages;FREngine.IBaseLanguage baseLanguage = baseLanguages.AddNew();// Establecer el alfabetobaseLanguage.set_LetterSet( FREngine.BaseLanguageLetterSetEnum.BLLS_Alphabet, "٠١٢٣٤٥٦٧٨٩" );// Obtener el objeto Layout de la páginaFREngine.ILayout layout = frPage.Layout;// Establecer la región del bloqueFREngine.IRegion region = engine.CreateRegion();region.AddRect( 491, 314, 2268, 404 );// Crear un bloqueFREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();// Establecer el idioma personalizadotextBlock.RecognizerParams.TextLanguage = textLanguage;// Especificar el tipo de textotextBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;// Especificar el tipo de marcado alrededor de las letrastextBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;// Reconocimiento y exportación...