Optical Mark Recognition API for .NET
Create a bubble sheet in C#
More showcases >// Initialize Aspose.OMR engine
var omrEngine = new Aspose.OMR.Api.OmrEngine();
// Generate machine-readable form from the markup
var generationResult
= omrEngine.GenerateTemplate("template.txt");
// Save printable OMR form to the PDF document
generationResult.SaveAsPdf("print", "answer-sheet");
> dotnet add package Aspose.OMR
Why Aspose.OMR for .NET?
Create and recognize machine-readable forms of any layout and complexity in on-premise applications, web services, or in the cloud. Our solution is suitable for projects of any size - from simple surveys and quizzes to final exams and elections. Click the items below to learn more about our features and benefits.
No equipment needed
Use your existing office copier or even a smartphone camera instead of a specialized OMR reader.
Full personalization
Personalize OMR forms by adding automatically generated QR codes and barcodes, images, signature fields, and more.
Reliable results
Robust optical mark detection algorithms coupled with the capability to fine-tune recognition guarantee 100% accurate results.
Whole solution
Aspose.OMR for .NET supports the complete OMR workflow - from designing a form to recognizing its filled hardcopies.
Developer-friendly
Our API is extremely easy to use even for inexperienced developers. A simple OMR application can be written in 10 lines of code.
Live code sample
Machine-readable answer sheets are essential elements of any written test, assessment, and class evaluation. This simple online application generates 4-column answer sheet and demonstrates the code required to do it on your machine using Aspose.OMR for .NET.
Copy and paste this code
More examples >public bool GenerateAnswerSheet(string markupFilePath)
{
// Initialize Aspose.OMR engine
var omrEngine = new Aspose.OMR.Api.OmrEngine();
// Set paper size
var pageSettings = new Aspose.OMR.Generation.GlobalPageSettings();
pageSettings.PaperSize = Aspose.OMR.Generation.PaperSize.A4;
// Generate machine-readable form from the markup file
var omrForm = omrEngine.GenerateTemplate(markupFilePath, pageSettings);
// Error handling
if(omrForm.ErrorCode != 0) return false;
// Save printable OMR form to the PDF document
omrForm.SaveAsPdf("print", "answer-sheet");
return true;
}
Platform independence
Aspose.OMR for .NET can work on any platform that supports .NET Framework 4.0 and later - whether on a local machine, on the web server, or in cloud.
Supported file formats
Aspose.OMR for .NET 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
- Plain text
- JSON
- Programmatically
Scan forms
- Scans: JPEG, PNG, TIFF, GIF, BMP
- Photos: JPEG, PNG
Recognize forms
- CSV
- JSON
- XML
Unlimited possibilities
The applications of Optical Mark Recognition are diverse, offering a simple solution to various aspects of life where manual data collection and analysis are required. This technology fully automates the form recognition, enabling hundreds of sheets to be processed per minute with nearly 100% accuracy. Results can be analyzed in real time or saved to a database for subsequent aggregation and analysis.
The applications span a wide range and include, but are not limited 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…
Global applications
Aspose.OMR for .NET can create and recognize multi-language forms. It makes the library suitable for global applications, including international surveys, educational assessments, and cross-cultural research projects. It allows you to offer respondents forms in the language in which they are most comfortable:
- English, French and other European languages;
- Cyrillic;
- Arabic;
- Persian;
- Hebrew;
- Urdu;
- Bengali.
Create OMR forms without design tools
Aspose.OMR for .NET offers highly versatile tools for designing machine-readable forms with any layout and level of complexity. External editors or design tools are not required. Through highly adaptable markup languages and programmatic objects , users can combine more than 20 layout and content elements in any desired manner.
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.
The forms can be personalized with automatically generated barcodes and QR codes, respondent’s name, unique identifiers, and photos. You can also brand OMR forms by adding your logo, corporate footers, and more. 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.
Check out sample ready-made form templates that can be automatically processed with Aspose.OMR for .NET.
Features and capabilities
Aspose.OMR for .NET is an easy-to-use, versatile, and cost-effective API for designing, rendering and recognizing hand-filled answer sheets, surveys, applications, and similar forms.
All paper sizes
Supports all popular paper sizes and a number of non-standard ones.
Scan with a smartphone
Use your smartphone camera instead of a scanner.
No design tools needed
Quickly create OMR forms without external editors and design tools.
QR and barcodes
Personalize forms with automatically generated barcodes and QR codes.
Accuracy tuning
Fine-tune recognition parameters for perfect results in any conditions.
Batch processing
Recognize all images in a folder with a single command.
Multi-page forms
Create and recognize OMR forms that extend across multiple pages.
Localization
LTR and RTL text direction and native numbering systems.
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 C#.
Installation
You can start using Aspose.OMR for .NET 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 .NET 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
?answer_sheet=answers
elements_count=150
answers_count=5
columns_count=3
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
var omrEngine = new Aspose.OMR.Api.OmrEngine();
// Generate machine-readable form from the markup
var generationResult = omrEngine.GenerateTemplate("template.txt");
// Save printable OMR form to the PDF document
generationResult.SaveAsPdf("print", "answer-sheet");
Optical mark reader
With Aspose.OMR for .NET, 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
Aspose.OMR.Api.OmrEngine omrEngine = new Aspose.OMR.Api.OmrEngine();
// Apply the recognition template
Aspose.OMR.Api.TemplateProcessor templateProcessor = omrEngine.GetTemplateProcessor("Hello.OMR.omr");
// Load the scanned or photographed form
Aspose.OMR.Model.RecognitionResult recognitionResult = templateProcessor.RecognizeImage("IMG_20220401.jpg");
// Output the recognition result
string result = recognitionResult.GetCsv();
Console.WriteLine(result);