We want to scan scanned documents (PDF/Images), and extract the meaningful information as key value pair or any format. like When a suppliers sends us invoice as scanned pdf, our solution should extract and look for the meaningful header and line level details.

We tried open source and commercial solutions like ABBYY, Amazon, Tesseract, and Google OCR, but the accuracy is not up to the mark and also the output is just plain text in case of open source solutions.

Kindly suggest any best open source or commercial solutions (OCR) which best fits for the above requirements.

  • I have had good luck with Omnipage Pro. However your mileage may vary.
    – cybernard
    Feb 5 at 22:13

You could utilize the LEADTOOLS Invoice Recognition SDK, creating a master form would allow you to identify the exact pieces of the invoice that you need and get the results of a scanned image as a key-value pair. As a disclaimer this is a paid SDK and I work for this vendor. The below link additionally has a sample project of how this could be done in Java.

Invoice Recognition Results


// Setup
codecs = new RasterCodecs();
ocrEngine = OcrEngineManager.createEngine(OcrEngineType.LEAD);
ocrEngine.startup(codecs, null, null, null);
repository = new DiskMasterFormsRepository(codecs,
                 "C:\\Users\\Public\\Documents\\LEADTOOLS Images\\Forms\\MasterForm Sets\\Invoice");
autoEngine = new AutoFormsEngine(repository, ocrEngine, null);

// Prepare the form image with some preprocessing (optional)
unknownForm = codecs.load(unknownFormFilepath);

// Attempt to match the unknownForm to one of the masterforms in repository
AutoFormsRunResult runResult = autoEngine.run(unknownForm, null, null, null);
if (runResult != null) {
         // Print out the form information on success

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.