Atalasoft's implementation of AbbyyEngine OCR engine is tuned to try and avoid getting caught up in particularly "busy" images (when asked to OCR a document that contains not just text but pictures/images as well etc...
However, there are times when you have content you want to force it to read.
The fix is to use the PageLocation event to override AbbyyEngine
// creating new AbbyyEngine instance
AbbyyEngine engine = new AbbyyEngine();
// BEFORE calling engine.Initialize(), set up this handler
engine.PageLocation += engine_PageLocation;
// set any other pre-initialization code here
// NOW you can use the AbbyyEngine as usual
... code here ...
// cleanup when done
/// this is the engine_PageLocation handler that will convert OcrImageRegion regions into
/// AbbyyOcrTextRegion objects and allow recognition within those formerly ignored regions
private void engine_PageLocation(object sender, OcrPageLocationEventArgs e)
e.RegionsOut = new OcrRegionCollection();
foreach (OcrRegion ocrRegion in e.RegionsIn)
e.RegionsOut.Add(ocrRegion is OcrImageRegion
? new AbbyyOcrTextRegion(ocrRegion.PolygonBounds)