This section describes how to upgrade from SmartZone 3 to SmartZone 7. While generally you'll be able to replace SmartZone 3 with SmartZone 7, there are a few important changes you may need to consider.
- Assembly Changes
- Licensing Changes
- Runtime Changes
- Performance Changes
- API Changes
- Changing to Automatically Reported Runtime Licensing
- Changing to Manually Reported Runtime Licensing
Assembly Changes
Projects must now target .NET Framework 3.5 or later to build with the SmartZone ICR assembly.
The assembly file name has been renamed from Accusoft.SmartZoneOCR3.Net.dll to Accusoft.SmartZoneOCR.Net.dll. Project references must be updated to use the new assembly.
Some native libraries that were previously integrated in the Accusoft.SmartZoneOCR.Net assembly are now included as separate dlls. These libraries will be extracted to the same directory as the assembly when using the Nuget Package. For Windows the libraries are named Accusoft.SmartZoneOCR.Common.dll and Accusoft.SmartZoneOCR.Common64.dll. For Linux distributions, the name of the file is Accusoft.SmartZoneOCR.CommonLinux64.so. These need to be included when redistributing any application that uses the SmartZoneOCR SDK.
Licensing Changes
The SmartZone runtime licensing scheme has changed completely, but you can replace the existing with at most three lines of code. See Changing to Automatically Reported Runtime Licensing and Changing to Manually Reported Runtime Licensing sections below for runtime licensing code examples.
Standard Edition licenses are no longer supported and will not be issued for SmartZone OCR 7.
Runtime Changes
There is now a runtime dependency with Microsoft Visual C++ for VS2015. Although SmartZone OCR 7 includes Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019 and 2022 dependencies for local deployment, it is preferred that Windows host machines install Universal CRT using Microsoft Windows Update.
Performance Changes
SmartZone OCR 7 uses a different OCR recognition engine. Expect some differences in speed and accuracy compared to SmartZone OCR 3.
To retain multi-threaded support, OCR recognition is performed from child processes. Each child process will require between 100 and 350 MB of RAM to operate depending on the operating system, recognition language chosen, input image size, and input image content.
API Changes
-
Removed
- LicenseEditionType enumeration.
- Licensing.LicenseEdition property.
- Licensing.UnlockRuntime method.
- Licensing.UnlockWeb method.
-
Deprecated
Class properties that no longer affect operation have been marked obsolete and will be removed in a future major release:- Segmentation.MaximumBlobSize property.
- Segmentation.MinimumTextLineHeight property.
- Segmentation.SplitOverlappingChars property.
- Segmentation.SplitMergedChars property.
- SmartZoneOCR.FastLoading property.
-
Changed
- CharacterSet.AllAlphas property.
- CharacterSet.AllCharacters property.
- CharacterSet.AlphaNumeric property.
- CharacterSet.Arithmetic property.
- CharacterSet.ArithmeticSymbols property.
- CharacterSet.Currency property.
- CharacterSet.CurrencySymbols property.
- CharacterSet.LowerCase property.
- CharacterSet.Punctuation property.
- CharacterSet.UpperCase property.
- SmartZoneException class.
-
Added
- CharacterSet.GetHashCode method.
- ImageNotAvailableException class.
- InvalidStateException class.
- Licensing.SetSolutionName method.
- Licensing.SetSolutionKey method.
- Licensing.SetOEMLicenseKey method.
- Reader.AnalyzeField(object) method.
- Reader.DefaultHorizontalResolution property.
- Reader.DefaultVerticalResolution property.
- SmartZoneOCR(String, Language) constructor.
- SmartZoneOCR.OCRDataPath property.
- TimeoutErrorException class.
The class Accusoft.SmartZoneOCRSdk.SmartZoneException now derives from System.Exception instead of System.ApplicationException. Applications that explicitly catch System.ApplicationException to handle SmartZone exceptions will need updating.
OCR resources are now packaged in folder assets rather than embedding within the assembly. By default, this folder is expected to reside in the same directory as the assembly. However, this folder can be deployed elsewhere and identified at runtime:
- Constructor SmartZoneOCR(String, Language)
- Property SmartZoneOCR.OCRDataPath
IMPORTANT: The path to the OCR resource directory may only use ANSI characters.
Language default character sets have changed. See below for specific changes per character set per language. Apps can edit and define character sets to add characters not presently included for that language with some restrictions.
- English default character sets have changed:
Character Set Added Removed AllCharacters ¤§©«®°·»„•™ | Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ Punctuation §©«®°·»„•™ | - French default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·Œœ„•™ |Üü AllAlphas Œœ Üü AlphaNumeric Œœ Üü Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase œ ü Punctuation §©®°·„•™ | UpperCase Œ Ü - Spanish default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·ÇÈÒçèò„•™ |¡ AllAlphas ÇÈÒçèò AlphaNumeric ÇÈÒçèò Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase çèò Punctuation §©®°·„•™ |¡ UpperCase ÇÈÒ - Italian default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·Óó„•™ | AllAlphas Óó AlphaNumeric Óó Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase ó Punctuation §©®°·„•™ | UpperCase Ó - German default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·Éé•™ | AllAlphas Éé AlphaNumeric Éé Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase é Punctuation §©®°·•™ | UpperCase É - Dutch default character sets have changed:
Character Set Added Removed AllCharacters ¤§©«®°·»ÿŸ„•™ |ÀÁÂÄÇÌÍÎÑÒÓÙÚÛàáâäçìíîñòóùú AllAlphas ÿŸ ÀÁÂÄÇÌÍÎÑÒÓÙÚÛàáâäçìíîñòóùú AlphaNumeric ÿŸ ÀÁÂÄÇÌÍÎÑÒÓÙÚÛàáâäçìíîñòóùú Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase ÿ àáâäçìíîñòóùú Punctuation §©«®°·»„•™ | UpperCase Ÿ ÀÁÂÄÇÌÍÎÑÒÓÙÚÛ - Portuguese default character sets have changed:
Character Set Added Removed AllCharacters ¤§©«®°·»Ãã„•™ |Èè AllAlphas Ãã Èè AlphaNumeric Ãã Èè Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase ã è Punctuation §©«®°·»„•™ | UpperCase Ã È - Norwegian default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·Éé„•™ | AllAlphas Éé AlphaNumeric Éé Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase é Punctuation §©®°·„•™ | UpperCase É - Finnish default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·„•™ | Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ Punctuation §©®°·„•™ | - Danish default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·Éé•™ | AllAlphas Éé AlphaNumeric Éé Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase é Punctuation §©®°·•™ | UpperCase É - Swedish default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·Éé„•™ | AllAlphas Éé AlphaNumeric Éé Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase é Punctuation §©®°·„•™ | UpperCase É - WesternEuropean default character sets have changed:
Character Set Added Removed AllCharacters ¤§©®°·ÃÐÝÞãðýþÿŒœŠšŸŽž•™ |¡ AllAlphas ÃÐÝÞãðýþÿŒœŠšŸŽž AlphaNumeric ÃÐÝÞãðýþÿŒœŠšŸŽž Arithmetic and ArithmeticSymbols ()*,/ Currency and CurrencySymbols ¤ LowerCase ãðýþÿœšž Punctuation §©®°·•™ |¡ UpperCase ÃÐÝÞŒŠŸŽ
Changing to Automatically Reported Runtime Licensing
Automatically Reported Runtime requires a license to be installed on the end-user's machine. See the Licensing section for more information.
In your SmartZone OCR 3 codebase, replace the UnlockRuntime method with calls to the SetSolutionName and SetSolutionKey methods.
C#
smartzoneOCR1.Licensing.SetSolutionName("YourSolutionName");
smartzoneOCR1.Licensing.SetSolutionKey(12345,12345,12345,12345);
VB.NET
smartzoneOCR1.Licensing.SetSolutionName("YourSolutionName")
smartzoneOCR1.Licensing.SetSolutionKey(12345,12345,12345,12345)
Changing to Manually Reported Runtime Licensing
In your SmartZone OCR 3 or later codebase, replace the UnlockRuntime method with calls to the SetSolutionName, SetSolutionKey, and SetOEMLicenseKey methods.
C#
smartzoneOCR1.Licensing.SetSolutionName("YourSolutionName");
smartzoneOCR1.Licensing.SetSolutionKey(12345,12345,12345,12345);
smartzoneOCR1.Licensing.SetOEMLicenseKey("2.0.AStringForOEMLicensing…");
VB.NET
smartzoneOCR1.Licensing.SetSolutionName("YourSolutionName")
smartzoneOCR1.Licensing.SetSolutionKey(12345,12345,12345,12345)
smartzoneOCR1.Licensing.SetOEMLicenseKey("2.0.AStringForOEMLicensing…")
There is no longer a separate method for web licensing. That functionality has been integrated into the SetOEMLicenseKey method.
If you encounter any porting issues, please contact Support for assistance.