Why Aspose.OMR for Java?

Build and process machine-readable forms of any layout and complexity in cross-platform Java applications, web services, or in the cloud. Our solution is scalable for any project, ranging from quick surveys and quizzes to comprehensive final exams and elections. Click the items below to learn more about our features and benefits.

Illustration omr

No equipment needed

Use your existing scanner, printer, or even a smartphone camera instead of specialized OMR hardware.

Fully customizable

Add images and texts to your OMR forms, use custom fonts and adjust the content to all popular paper sizes.

Reliable results

Robust optical mark detection algorithms, combined with the ability to refine recognition, ensure 100% accurate results.

Whole product

Aspose.OMR for Java facilitates the entire OMR process, from designing the forms to the recognition of filled printouts.


Even novice developers can easily use our API. A basic OMR application requires just 10 lines of code.

Live code sample

Machine-readable answer sheet is a crucial component of written tests, assessments, and class evaluations. This basic online application generates a 4-column bubble sheet and illustrates the necessary code to achieve this on your local machine using Aspose.OMR for Java.

Number of questions


Bubbles per question

Copy and paste this code

More examples >
// Initialize Aspose.OMR engine
OmrEngine engine = new OmrEngine();
// Generate machine-readable form from the markup
GenerationResult res
     = engine.generateTemplate("template.txt");
// Save printable OMR form as an image
res.Save("print", "answer-sheet");

Platform independence

Aspose.OMR for Java can work on any platform that supports Java Platform, Standard Edition (J2SE) 7.0 (1.7) or above.

Microsoft Windows

Supported file formats

Aspose.OMR for Java can work with virtually any file you can get from a scanner or camera. Recognition results are returned in the most popular data exchange formats that can be imported into any popular database or analytics system.

Build forms

  • TXT

Scan forms

  • JPEG
  • PNG

Recognize forms

  • CSV
  • JSON

Unlimited possibilities

Optical Mark Recognition has a wide range of applications, providing a straightforward solution to different aspects of life that involve manual data collection and analysis. This technology completely automates form recognition, allowing the processing of hundreds of sheets per minute with almost 100% accuracy. Results can be analyzed in real-time or stored in a database for later aggregation and analysis.

The applications span a wide range and include, but are not restricted to:

  • Education: answer sheets, tests, quizzes, exam forms.
  • Government: voting ballots, tax forms, border entry forms, censuses, public opinions.
  • Medicine: examinations, assessments, patient information forms, health insurance claims.
  • Finance: loan applications, customer information updates, credit card applications.
  • And many more…

No hardware needed

Image pre-processing and analysis algorithms eliminate the need for specialized OMR scanners and other specialized hardware accessories.You can use a regular pen and paper, common office copier, or even a smartphone camera instead of a scanner, without affecting recognition accuracy and confidence in the result. Our library allows you to create OMR software solutions with the reliability of hardware systems at a much lower cost. Feel free to use any available equipment:

  • Auto feed document scanner;
  • Budget office copier;
  • Laser or inkjet printer;
  • Portable handheld scanner;
  • Compact or DSLR camera;
  • Smartphone;
  • Autofocus webcam.

Create OMR forms without design tools

Aspose.OMR for Java provides exceptionally flexible tools for creating machine-readable forms, accommodating various layouts and levels of complexity. There’s no need for external editors or design tools. With our highly adaptable markup language users can seamlessly integrate various elements in any preferred configuration.

If you lack the time to familiarize yourself with template markup syntax, worry not. You can easily create a custom OMR form interactively from any platform or device using online form designer . You can add any number of elements, resize and position them according to your specific needs.

Alumni questionnaire Customer satisfaction survey SAT form

The forms can be personalized with respondent’s name, unique identifiers and photos. You can also brand OMR forms by adding your logo or other image. Experiment with layouts, question formats, and answer structures, all while ensuring the consistent accuracy of mark recognition. Enjoy a creative design process and say goodbye to complex design processes and embrace a straightforward approach to form creation.

Look at the code samples and adapt them to your needs.

Features and capabilities

Aspose.OMR for Java is an easy-to-use, versatile, and cost-effective API for designing, rendering and recognizing hand-filled answer sheets, surveys, applications, and similar forms.

Feature icon

All paper sizes

Supports all popular paper sizes and a number of non-standard ones.

Feature icon

Scan with a smartphone

Use your smartphone camera instead of a scanner.

Feature icon

No design tools needed

Quickly create OMR forms without external editors and design tools.

Feature icon

Accuracy tuning

Fine-tune recognition parameters for perfect results in any conditions.

Feature icon

Batch processing

Recognize all images in a folder with a single command.

Feature icon

Branding and customization

Customize OMR forms by adding your logo, images, footers, and more.

Easy to use

You only need a few lines of code to create an answer sheet, survey or other OMR form, and recognize the completed form.
You will only need 15 minutes of spare time and a basic knowledge of Java lang.


Aspose.OMR for Java is hosted in the Maven repository . You can easily use it directly in your Maven Projects with minimal configuration. There is no need to download and install any additional software - the package is self-contained.

You can start using Aspose.OMR for Java right after the installation with some restrictions. A temporary license removes all limitations of the trial version for 30 days. Use it to start building a fully functional OMR application and make the final decision to purchase Aspose.OMR for Java later.

Form generator

The structure and layout of the OMR form is defined in a plain-text file that uses a special notation. You can create it with any text editor, including Notepad. You only need 4 lines to generate 150 question machine-readable answer sheet:

How to design an answer sheet


Once you have finished with the form structure and layout, you only need 3 lines of code to build a simple utility that generates a printable page from it:

How to generate a printable form

// Initialize Aspose.OMR engine
OmrEngine engine = new OmrEngine();
// Generate machine-readable form from the markup
GenerationResult res = engine.generateTemplate("template.txt");
// Save printable OMR form as an image
res.Save("print", "answer-sheet");

Optical mark reader

With Aspose.OMR for Java, you can create a fully-functional programmatic optical mark reader in 5 lines of code. You can use your existing office copier or even a smartphone camera instead of an expensive OMR scanner. Respondents can fill out your forms with pen, pencil, or marker and use any types of marks.

How to recognize a completed form

// Initialize Aspose.OMR engine
OmrEngine engine = new OmrEngine();
// Apply the recognition template
TemplateProcessor processor = engine.getTemplateProcessor("pattern.omr");
// Load the scanned or photographed form
RecognitionResult result = processor.recognizeImage("completed-form.png");
// Output the recognition result
String resultCsv = result.getCsv();