ABBYY Mobile OCR Engine 4

Go to: Contents | Specifications | Compatibility Issues

Compatibility of ABBYY Mobile OCR Engine 4 release 14 with previous releases

Different builds of ABBYY Mobile OCR Engine are not binary compatible. Applications that were compiled using earlier builds of ABBYY Mobile OCR Engine should be recompiled. Some changes in the source code may be necessary because of the improvements in the API. In the table below you can find the API changes introduced in the different builds.

Build # Changes Required code modifications
4.0 r12 The rotation property was removed from the FineRecognizeBlocks method. Remove all mentions of the rotation property of the FineRecognizeBlocks method.
4.0 r10 ABBYY Mobile OCR Engine does not support the Symbian, WinCE, and WinMobile operating systems. The Symbian, WinCE, and WinMobile operating systems are no longer supported.
The Yiddish recognition language is not supported any longer. Remove the Yiddish language from the list of the recognition languages.
The TCallbackFunction function has been replaced by TFineProgressCallbackFunction. Replace the TCallbackFunction function by TFineProgressCallbackFunction.
The following types have been deprecated:

PFINE_ANGLE
PFINE_BARCODE
PFINE_BCR_FIELD
PFINE_BUSINESS_CARD
PFINE_FIELD_COMPONENT
PFINE_IMAGE
PFINE_IMAGE_TRANSFORMATION_INFO
PFINE_LAYOUT
PFINE_LICENSE_INFO
PFINE_RECTS
PFINE_TEXT_BLOCK
PFINE_TEXT_CHARACTER
PFINE_TEXT_LINE
PFINE_WARNING_DATA_WRONG_LANGUAGE
PFINE_WORD_SUGGESTION

Replace the PFINE_* types to the corresponding pointers.
The constants of the TFineBarcodeSupplement enumeration have been renamed. Rename the TFineBarcodeSupplement enumeration constants as follows:

FBS_VOID = FBS_Void,
FBS_2DIGIT = FBS_2Digit,
FBS_5DIGIT = FBS_5Digit,
FBS_AUTODETECT = FBS_AutoDetect,
FBS_ANY_SUPPLEMENT = FBS_AnySupplement

The constants of the TFineBarcodeOrientation enumeration have been renamed. Rename the TFineBarcodeOrientation enumeration constants as follows:

FBO_LEFT_TO_RIGHT = FBO_LeftToRight,
FBO_DOWN_TO_TOP = FBO_DownToTop,
FBO_RIGHT_TO_LEFT = FBO_RightToLeft,
FBO_TOP_TO_DOWN = FBO_TopToDown,
FBO_AUTODETECT = FBO_AutoDetect

The constants of the TFineBarcodeType enumeration have been renamed. Rename the TFineBarcodeType enumeration constants as follows:

FBT_UNRECOGNIZED = FBT_Unrecognized
FBT_CODE39 = FBT_Code39
FBT_INTERLEAVED25 = FBT_Interleaved25
FBT_EAN13 = FBT_Ean13
FBT_CODE128 = FBT_Code128
FBT_EAN8 = FBT_Ean8
FBT_PDF417 = FBT_Pdf417
FBT_CODABAR = FBT_Codabar
FBT_UPCE = FBT_Upce
FBT_INDUSTRIAL25 = FBT_Industrial25
FBT_IATA25 = FBT_Iata25
FBT_MATRIX25 = FBT_Matrix25
FBT_CODE93 = FBT_Code93
FBT_POSTNET = FBT_Postnet
FBT_UCC128 = FBT_Ucc128
FBT_PATCH = FBT_Patch
FBT_AZTEC = FBT_Aztec
FBT_DATAMATRIX = FBT_Datamatrix
FBT_QRCODE = FBT_Qrcode
FBT_UPCA = FBT_Upca
FBT_MAXICODE = FBT_Maxicode
FBT_ANY1D = FBT_Any1D
FBT_SQUARE2D = FBT_Square2D
FBT_ANY1D_WITH_SUPPLEMENT =  FBT_Any1DWithSupplement

The TRecognitionConfidenceLevel enumeration and its constants have been renamed. Rename the TRecognitionConfidenceLevel enumeration to TFineRecognitionConfidenceLevel and its constants as follows:

RCL_Level0 = FRCL_Level0,
RCL_Level1 = FRCL_Level1,
RCL_Level2 = FRCL_Level2,
RCL_Level3 = FRCL_Level3,
RCL_Level4 = FRCL_Level4

The TRecognitionMode enumeration and its constants have been renamed. Rename the TRecognitionMode enumeration to TFineRecognitionMode and its constants as follows:

RM_Fast = FRM_Fast,
RM_Full = FRM_Full

The PFINE_PATTERNS , PFINE_DICTIONARY, and PFINE_KEYWORDS types have been replaced by TFinePatternsPtr, TFineDictionaryPtr, and TFineKeywordsPtr, respectively. Replace the variables of the PFINE_PATTERNS, PFINE_DICTIONARY, and PFINE_KEYWORDS types by TFinePatternsPtr, TFineDictionaryPtr, and TFineKeywordsPtr, respectively. See Types in ABBYY Mobile OCR Engine Native Library for details.
The FINE_ATTR_ prefixed flags has been replaced by the TFineCharacterAttributes enumeration. Replace all FINE_ATTR_ prefixed flags by the TFineCharacterAttributes enumeration constants as follows:

FINE_ATTR_ITALIC = FCA_Italic,
FINE_ATTR_BOLD = FCA_Bold,
FINE_ATTR_UNDERLINED = FCA_Underlined,
FINE_ATTR_STRIKETHROUGH = FCA_Strikethrough,
FINE_ATTR_SMALLCAPS = FCA_Smallcaps,
FINE_ATTR_SUPERSCRIPT = FCA_Superscript,
FINE_ATTR_UNCERTAIN = FCA_Uncertain,
FINE_ATTR_BARCODE_BINARY_DATA_HEXED = FCA_BarcodeBinaryDataHexed,
FINE_ATTR_BARCODE_BINARY_ZERO = FCA_BarcodeBinaryZero,
FINE_ATTR_BARCODE_START_STOP_SYMBOL = FCA_BarcodeStartStopSymbol

The TFineImageProcessingOptions, TBCRFieldType, TBCRComponentType, FINE_WARNING_CODE enumerations have been renamed to TFineImageProcessingOptionsFlags, TBcrFieldType, TBcrComponentType, and TFineWarningCode, respectively. Rename the TFineImageProcessingOptions,, TBCRFieldType, TBCRComponentType, FINE_WARNING_CODE enumerations to TFineImageProcessingOptionsFlags, TBcrFieldType, TBcrComponentType, and TFineWarningCode, respectively.
The FINE_ANGLE, FINE_BARCODE, FINE_BCR_FIELD, FINE_BUSINESS_CARD, FINE_FIELD_COMPONENT, FINE_IMAGEFINE_IMAGE_TRANSFORMATION_INFO, FINE_LAYOUT, FINE_LICENSE_INFO, FINE_RECTS, FINE_TEXT_BLOCK, FINE_TEXT_CHARACTER, FINE_TEXT_LINEFINE_WARNING_DATA_WRONG_LANGUAGE, and FINE_WORD_SUGGESTION structures have been replaced by CFineAngle, CFineBarcode, CFineBcrField, CFineBusinessCard, CFineBcrFieldComponent, CFineImage CFineImageTransformationInfo, CFineLayout, CFineLicenseInfo, CFineRects, CFineTextBlock, CFineTextCharacter, CFineTextLine, CFineWarningDataWrongLanguages, and CFineWordSuggestion, respectively. Replace variables of the FINE_ANGLE, FINE_BARCODE, FINE_BCR_FIELDFINE_BUSINESS_CARD, FINE_FIELD_COMPONENT, FINE_IMAGEFINE_IMAGE_TRANSFORMATION_INFO, FINE_LAYOUT, FINE_LICENSE_INFO, FINE_RECTS, FINE_TEXT_BLOCK, FINE_TEXT_CHARACTER, FINE_TEXT_LINEFINE_WARNING_DATA_WRONG_LANGUAGE, and FINE_WORD_SUGGESTION types by CFineAngle, CFineBarcode, CFineBcrField, CFineBusinessCard, CFineBcrFieldComponent, CFineImage CFineImageTransformationInfo, CFineLayout, CFineLicenseInfo, CFineRects, CFineTextBlock, CFineTextCharacter, CFineTextLine, CFineWarningDataWrongLanguages, and CFineWordSuggestion, respectively.
The FINE_ERROR_CODE enumeration and its constants have been renamed. Rename the FINE_ERROR_CODE enumeration to TFineErrorCode and its constants as follows:

FINE_ERR_NO_ERROR = FEC_NoError,
FINE_ERR_NOT_INITIALIZED = FEC_NotInitialized,
FINE_ERR_LICENSE_ERROR = FEC_LicenseError,
FINE_ERR_INVALID_ARGUMENT = FEC_InvalidArgument,
FINE_ERR_NOT_ENOUGH_MEMORY = FEC_NotEnoughMemory,
FINE_ERR_INTERNAL_FAILURE = FEC_InternalFailure,
FINE_ERR_TERMINATED_BY_CALLBACK = FEC_TerminatedByCallback

The FINE_CUSTOMER_KEY and FINE_WARN_WRONG_LANG structures have been removed. Remove variables of the FINE_CUSTOMER_KEY and FINE_WARN_WRONG_LANG types.
4.0 r7
The TrialKey.h file has been deleted. The trial license is stored in the /License/Sample.license file. Delete the TrialKey.h file from the included files, load the license file to the memory, and pass loaded information to ABBYY Mobile OCR Engine library. See Licensing section for details.
4.0 r5 The BCT_AddressClarification and BCT_AddressUnclassifiedPart constants have been removed from the TBcrComponentType enumeration, and the BCT_State constant has been renamed to BCT_Region. Use the BCT_StreetAddress constant instead of BCT_AddressClarification and BCT_AddressUnclassifiedPart. Rename the BCT_State constant.
4.0 r2 The ability to detect the page orientation has been added (the FIPO_DetectPageOrientation constant of the TFineImageProcessingOptions enumeration). Due to this change the rotation parameter has been added in the FineRecognizeImage, FineRecognizeRegion and FineRecognizeBusinessCard functions. Add 0 as the rotation parameter in all calls of the FineRecognizeImage, FineRecognizeRegion and FineRecognizeBusinessCard functions.
4.0.1 The licensing of ABBYY Mobile OCR Engine has been changed. A customer key provides access to certain functionality of ABBYY Mobile OCR Engine. A user can have a set of keys representing necessary functionality. The FineSetLicenseInfo function has been created for adding license information. You have to call the FineSetLicenseInfo function for your license after calling of the FineInitialize function. Add license information with the help of the FineSetLicenseInfo function.
4.0 The AllDictionaryLanguages.rom and AllLanguages.rom files have been removed. The European.rom file must be used instead. Load the European.rom file instead of the AllDictionaryLanguages.rom and AllLanguages.rom files.
The Quality field has been added into CFineTextCharacter structure. The  FIPO_SkipDictionaryUncertainty flag has been removed from the TFineImageProcessingOptions set. Use the value of the Quality field instead of the FIPO_SkipDictionaryUncertainty flag.
The definition of the BFT_Text field has been changed. Now the recognized text is stored in this field. If you want to get text fragments from the field of the BFT_Text type, which is not stored in another field, you can remove text fragments stored in another field using information about character rectangles.
The CJK languages (Chinese Simplified, Chinese Traditional, Japanese, and Korean) are now available for recognition. The cjkPatterns parameter has been added into FineRecognizeImage, FineRecognizeRegion, FineRecognizeBusinessCard functions. This parameter contains the zero-terminated list of pointers to the patterns for CJK languages. It must not be null and must contain valid patterns, if one of these languages is specified in the languages parameter.

Notes:

  • The ChineseJapanese.rom file must be specified in the cjkPatterns parameter for recognition of text in Chinese or Japanese language.
  • Both the ChineseJapanese.rom and KoreanSpecific.rom files must be specified in the cjkPatterns parameter for recognition of text in Korean language.
Pass 0 as cjkPatterns parameter in the recognition functions, if the code does not perform recognition of texts in CJK languages.