Aspose.OMR for .NET 22.12.1 Release Notes

What was changed

Key Summary Category
OMRNET-716 Added the ability to localize OMR forms to different writing systems. Affects text direction and item numbering. New feature
OMRNET-715 Fixed a layout issue when a footer-type container (text markup / JSON markup) overlaps another container with wrap mode active. Fix

Known issues and limitations

Key Summary Workaround
OMRNET-462 Recognition of multi-page PDF and TIFF files causes an error. Scan each page of the filled form into a separate file and recognize them one-by-one.
OMRNET-555 Recalculate method results in incorrect processing of ScoreGroup elements (text markup / JSON markup) and CustomAnswerSheet elements (text markup / JSON markup). Use RecognizeImage method with different threshold setting instead of run-time adjustments of recognition accuracy.

Public API changes and backwards compatibility

This section lists all public API changes introduced in Aspose.OMR for .NET 22.12.1 that may affect the code of existing applications.

Added public APIs:

The following public APIs have been added in this release:

Aspose.OMR.Generation.WritingSystems

A new WritingSystem property has been added to page layout parameters that changes the text direction (LTR or RTL) and item numbering of generated OMR forms. It is provided as an instance of one of the following classes:

Value Text direction Item numbering
Aspose.OMR.Generation.WritingSystems.Western Left-to-right (LTR) Western (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Aspose.OMR.Generation.WritingSystems.Arabic Right-to-left (RTL) useNativeNumber = true - Eastern Arabic (٠, ١, ٢, ٣, ٤, ٥, ٦, ٧, ٨, ٩)
useNativeNumber = false - Western (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Aspose.OMR.Generation.WritingSystems.Persian Right-to-left (RTL) useNativeNumber = true - Persian (۰, ۱, ۲, ۳, ۴, ۵, ۶, ۷, ۸, ۹)
useNativeNumber = false - Western (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

By default, the forms are generated from left-to-right (LTR) with Western numbering.

Updated public APIs:

No changes.

Removed public APIs:

No changes.

Usage examples

See the examples below to learn more about the changes introduced in this release:

Arabic localization

?text=قسم ورقة الإجابة
?answer_sheet=AnswerSheetArabic
	elements_count=50
	columns_count=5
	answers_list=(١)(۲)(۳)(٤)
Aspose.OMR.Api.OmrEngine omrEngine = new Aspose.OMR.Api.OmrEngine();
Aspose.OMR.Generation.GlobalPageSettings globalPageSettings = new Aspose.OMR.Generation.GlobalPageSettings();
globalPageSettings.WritingSystem = new Aspose.OMR.Generation.WritingSystems.Arabic(true);
Aspose.OMR.Generation.GenerationResult generationResult = omrEngine.GenerateTemplate("source.txt", globalPageSettings);

Arabic answer sheet

Persian localization

?text=بخش پاسخنامه
?answer_sheet=AnswerSheetPersian
	elements_count=50
	columns_count=5
	answers_list=(١)(۲)(۳)(۴)
Aspose.OMR.Api.OmrEngine omrEngine = new Aspose.OMR.Api.OmrEngine();
Aspose.OMR.Generation.GlobalPageSettings globalPageSettings = new Aspose.OMR.Generation.GlobalPageSettings();
globalPageSettings.WritingSystem = new Aspose.OMR.Generation.WritingSystems.Persian(true);
Aspose.OMR.Generation.GenerationResult generationResult = omrEngine.GenerateTemplate("source.txt", globalPageSettings);

Persian answer sheet

Western localization

?text=Answer sheet section
?answer_sheet=AnswerSheetWestern
	elements_count=50
	columns_count=5
	answers_list=(1)(2)(3)(4)
Aspose.OMR.Api.OmrEngine omrEngine = new Aspose.OMR.Api.OmrEngine();
Aspose.OMR.Generation.GlobalPageSettings globalPageSettings = new Aspose.OMR.Generation.GlobalPageSettings();
globalPageSettings.WritingSystem = new Aspose.OMR.Generation.WritingSystems.Western(true);
Aspose.OMR.Generation.GenerationResult generationResult = omrEngine.GenerateTemplate("source.txt", globalPageSettings);

Western answer sheet