If you are wanting to work with with a commercial OCR SDK you could check out the LEADTOOLS OCR SDK. You can easily OCR a document in just few lines of code, see below.
// Initialize the OCR engine
ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage,
// Startup the engine
ocrEngine.Startup(null, null, null, @"C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime");
using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument())
{
//Load image
RasterImage image = ocrEngine.RasterCodecsInstance.Load(file, 0, CodecsLoadByteOrder.Rgb, 1, -1);
//Add pages
ocrDocument.Pages.AddPages(image, 1, -1, null);
//Recognize Page
ocrDocument.Pages.Recognize(null);
//Save Output
ocrDocument.Save(outPut, Leadtools.Forms.DocumentWriters.DocumentFormat.Text, null);
}
You can also find an OCR HTML5/JavaScript Interactive Demo if you are interested in testing this out with your file. This SDK will work on Windows, Linux, Mac, Android, WinRT and iOS.
Disclaimer: I am an employee of this product