Los ejemplos de C# solo se aplican a FRE para Windows.
La tecnología de reconocimiento inteligente de caracteres (ICR) de ABBYY FineReader Engine permite reconocer textos manuscritos y en letra de imprenta.
No todos los idiomas de reconocimiento están disponibles para reconocer texto manuscrito o en letra de imprenta. Consulte la lista de idiomas predefinidos.
Durante el análisis del diseño, se pueden detectar bloques con textos manuscritos y en letra de imprenta, y marcarlos para su reconocimiento con el tipo de texto manuscrito. Para detectar y reconocer texto manuscrito o en letra de imprenta, establezca la propiedad DetectHandwritten de PageAnalysisParams en TRUE. Establezca la propiedad SpeedQualityMode en SQM_Accurate, ya que la escritura manuscrita solo puede detectarse en el modo de análisis preciso.El texto manuscrito y el texto en letra de imprenta se especifican mediante la misma constante TextTypeEnum::TT_Handwritten. Los bloques de texto se crearán con la propiedad TextTypes del objeto ITextBlock::RecognizerParams establecida en TT_Handwritten.Durante el reconocimiento, el texto se reconocerá como manuscrito si el idioma de reconocimiento admite texto manuscrito, o como texto en letra de imprenta si solo admite este último.
Código C#
// Objeto global de ABBYY FineReader EngineFREngine.IEngine engine;...// Abrir un archivo de imagen...FREngine.IFRDocument frdoc;// Crear DocumentProcessingParams y establecer los parámetrosFREngine.IDocumentProcessingParams processingParams = engine.CreateDocumentProcessingParams();processingParams.PageProcessingParams.PageAnalysisParams.SpeedQualityMode = SQM_Accurate;processingParams.PageProcessingParams.PageAnalysisParams.DetectHandwritten = true;// Establecer los tipos de texto para reconocer tanto texto normal como escritura manuscritaprocessingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;// Usar los parámetros para el procesamientofrDoc.Process( processingParams );...
Como alternativa, puede configurar manualmente los parámetros de reconocimiento para bloques con texto manuscrito mediante la propiedad ITextBlock::RecognizerParams:
[Opcional] Las letras de imprenta suelen estar encerradas en un marco, recuadro, etc. En este caso, establezca el tipo de marca alrededor de las letras en la propiedad FieldMarkingType del objeto RecognizerParams. Si cada letra está escrita en una celda independiente, utilice la propiedad CellsCount para especificar el número de celdas de caracteres en el bloque reconocido.
Código C#
// Objeto global de ABBYY FineReader EngineFREngine.IEngine engine;...// Abrir un archivo de imagen...// 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 bloque nuevoFREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();// Especificar el tipo de textotextBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;// Especificar el tipo de marca alrededor de las letrastextBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;// Reconocimiento y exportación...