Changelog
tip
For additional details about the API, please refer to our API reference documentation.
MAUI - Version 5.1.0 (19 Sep 2024)
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Use
ScanbotSDK.ReadyToUseUIService
to leverage the new UI. See Ready-to-Use UI for documentation and various use cases. - Added support for the Micro PDF 417 barcode format.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added support for Canadian and UAE Check standards.
- Added new class-based image filters, ParametricFilter, for the ImageProcessor API:
- ScanbotBinarizationFilter
- CustomBinarizationFilter
- ColorDocumentFilter
- BrightnessFilter
- ContrastFilter
- GrayscaleFilter
- WhiteBlackPointFilter
- LegacyFilter (encapsulates the deprecated
ImageFilter
type filters).
- Added support for German residence permits (2011 and 2019 formats) in the
GenericDocumentRecognizer
. Check property AcceptedDocumentTypes of typeGenericDocumentRootType[]
in theGenericDocumentRecognizerConfiguration
class. - Added new class
DocumentQualityAnalyzerConfiguration
. Check DetectDocumentQualityAsync(...) in the ScanbotSDK.SDKService API. - Added new properties to the PDFConfiguration class used while creating a PDF file.
- Added new Data detection on still Image feature which can be accessed from ScanbotSDK.DataDetectionService API. It will allow input
ImageSource
and perform data detection for- Check
- EHIC (European Health Insurance Card)
- Generic Document
- Medical Certificate
- MRZ
- Added
UserDefinedFields
in the class TiffOptions, used in the functionScanbotSDK.SDKService.WriteTiffAsync(...)
. - Added AcceptedBrightnessThreshold in the
DocumentScannerConfiguration
andFinderDocumentScannerConfiguration
. - Added ReturnCroppedDocumentImage in the
MedicalCertificateRecognizerConfiguration
.
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Use
- 🚀 Improvements:
- Optimized camera preview quality and processing speed for all scanners.
- iOS:
- IMPORTANT: Changed the default rear cameras on all scanners to the triple or dual camera. On some devices with triple camera this results in a different view port (more zoomed in). Please make sure to adapt your zoom ranges and factors.
- Added support of haptic feedback on capable devices.
- Android:
- Changed the touch to focus square in the native camera view to a circle.
- Added several missing, and mostly platform specific, properties to the RTU v1 scanner configurations:
- For BarcodeScannerConfiguration
and BatchBarcodeScannerConfiguration, the following properties where exposed:
- For Android only (accessible through #if ANDROID):
AutoCancelTimeout
(This property is Android only for theBatchBarcodeScannerConfiguration
.)CameraPreviewMode
UseButtonsAllCaps
DelayAfterScan
TouchToFocusEnabled
MinFocusDistanceLock
- For iOS only (accessible through #if iOS):
FocusLockEnabled
FocusLockPosition
DoubleTapToZoomEnabled
PinchToZoomEnabled
ShouldAnimateZooming
- For Android only (accessible through #if ANDROID):
- For BarcodeScannerConfiguration
and BatchBarcodeScannerConfiguration, the following properties where exposed:
- 🐞 Bug fixes:
- For BarcodeFormat.Pdf417, a single case to generate clusters was not covered, which led to a crash.
- Fixed issue with misaligned barcode polygons on some devices with horizontal orientation.
- ⚠️ Breaking Changes:
- IMPORTANT - Classic Component: The MAUI Classic UI Components:
BarcodeScannerView
andBarcodeScanAndCountView
must now be wrapped insideScanbotClassicUIContainer
. See the example here. - IMPORTANT - Namespaces: There are namespace changes for almost every RTU UI configuration. Earlier all the RTU UI configurations were available in the
ScanbotSDK.MAUI
namespace. But now they are available in the specific module folders. For e.g:ScanbotSDK.MAUI.DocumentScannerConfiguration
isScanbotSDK.MAUI.Document.DocumentScannerConfiguration
ScanbotSDK.MAUI.CheckRecognizerConfiguration
isScanbotSDK.MAUI.Check.CheckRecognizerConfiguration
- For all the other class namespaces, Please refer to the API references here.
- IMPORTANT - ImageFilter : Replaced all the properties and functions using
ImageFilter
enum withParametricFilter
object in theIScannedPage
interface. This change can impact the data saved in the local storage, while migrating from the previous versions. Note: We can also set theImageFilter
toParametricFilter
directly. The SDK will implicitly convert the old type and return aParametricFilter
. - Replaced parameter
ImageFilter
withParametricFilter
in theScanbotSDK.SDKService.ApplyImageFilterAsync(...)
method. - IMPORTANT - BarcodeScanner: Our Ready to Use UI v1 barcode scanners are now deprecated and it is highly encouraged to use the new RTU UI v2 barcode scanner API. All RTU v1 code has been moved to the
ScanbotSDK.MAUI.RTU.v1
namespace, with RTU v2 code existing underScanbotSDK.MAUI
. Also moved the Legacy Barcode Scanners fromScanbotSDK.ReadyToUseUIService
toScanbotSDK.LegacyBarcodeScanner
. - The structure of barcode formatted results has been changed from record classes to using GenericDocument. See API reference for the new structure here. This change affects RTU UI v1, however, the same structures are used across RTU UI v1 and RTU UI v2.
- Renamed
BarcodeFormat.Rss14
toBarcodeFormat.Databar
andBarcodeFormat.RssExpanded
toBarcodeFormat.DatabarExpanded
. - Moved
DetectDocumentAsync
fromScanbotSDK.SDKService
toScanbotSDK.DataDetectionService
, keeping all data detectors(from anImageSource
) in a single interface. - iOS:
MinFocusDistanceLock
removed fromBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
.FocusLockEnabled
andFocusLockPosition
are exposed for iOS and these values give more control for camera focus.
- IMPORTANT - Camera: Changed the default rear cameras on all scanners to the triple or dual camera.
- IMPORTANT - Classic Component: The MAUI Classic UI Components:
- 🚙 Under the hood:
- Updated the .NET bindings to .NET SDK 5.1.0 (see our .NET changelog for more under the hood changes).
- Upgraded the native Scanbot Android SDK to v5.1.3 and Scanbot iOS SDK to v5.1.4 versions.
MAUI - Version 4.2.1 (6 May 2024)
- 🎉 New:
- Added
PDFConfiguration
class which allows the user to setPDFSize
,PDFOrientation
,PDFAttributes
for creating a PDF document. Please checkScanbotSDK.MAUI.SDKService.CreatePdfAsync(...)
. ThePDFAttributes
class allows the user to set the PDF metadata. - Added a new property
ScanbotOCR
and methodTesseract(...)
inOcrConfig
class. It simplifies the usage of OCR configuration engines. - Added a new method
ScanbotSDK.MAUI.SDKService.CreateSandwichPdfAsync(...)
which creates PDF document along with performing the OCR on it.
- Added
- 🐞 Bug fixes:
- iOS: Fixed a bug in
ScanbotSDK.MAUI.SDKService.CreatePdfAsync(...)
, it always used the OCR engine before. Now, there are 2 different functions for both usecases:- Creating a PDF document, See
ScanbotSDK.MAUI.SDKService.CreatePdfAsync(...)
- Creating a PDF including OCR (Sandwich PDF document). See
ScanbotSDK.MAUI.SDKService.CreateSandwichPdfAsync(...)
- Creating a PDF document, See
- iOS: Fixed a bug in
- ⚠️ Breaking changes:
- The
OCRMode
enum typesML
andLegacy
are renamed withScanbotOCR
andTesseract
respectively. - Replaced
ScanbotSDK.MAUI.SDKService.CreatePdfAsync(IEnumerable<FileImageSource> files, PDFPageSize pageSize, PDFPageOrientation pdfPageOrientation, OcrConfig configuration)
withScanbotSDK.MAUI.SDKService.CreatePdfAsync(IEnumerable<FileImageSource> files, PDFConfiguration configuration)
.
- The
MAUI - Version 4.2.0 (17 Apr 2024)
- 🎉 New:
- Added new RTU UI components:
- VIN (Vehicle identification number) Scanner
- License Plate Scanner
- Text Data Scanner
- Introduced Document Quality Analyzer. It analyzes the text quality (legibility) on images. See ⚠️ Breaking changes for more information.
- Added new supported barcode formats. Check
BarcodeFormat
enum for:USPSIntelligentMail
RoyalMail
JapanPost
RoyalTNTPost
AustraliaPost
GS1Composite
DatabarLimited
- Added support for Kuwait ID cards in the MRZ scanner.
- Added support for Israelian checks to the check recognizer.
- Added new type literals for
PDFPageSize
. - Added a new enum
PDFPageOrientation
which can be used while creating PDF inIScanbotService.CreatePdfAsync(...)
method. - Formatted barcode documents are now exposed on barcodes via a new property called
FormattedResult
, which contains strongly typed records of the data contained within the barcode. The new record types include:AAMVADocument
BoardingPassDocument
DEMedicalPlanDocument
Gs1Document
IDCardPDF417Document
MedicalCertificateDocument
SEPADocument
SwissQRDocument
VCardDocument
- MRZ support for td1 long document standard.
- Added
CameraZoomRange
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. - Added
ExtensionFilter
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. AddedExtension
property inBarcode
result model to access the extension result.
- Both Android and iOS:
- New PDF renderer for simple PDF and "sandwiched" PDF generation.
- Added support for custom PDF metadata. Check
IO.Scanbot.Pdf.Model.PdfAttributes
for Android andSBSDKPDFMetadataProcessor
for iOS. - Added support for portrait, landscape and auto page orientation. Check
IO.Scanbot.Pdf.Model.PageDirection
in Android andSBSDKPDFRendererPageOrientation
for iOS. - Extended list of supported page sizes (A3, A5, B4, B5, etc.). Check
IO.Scanbot.Pdf.Model.PageSize
for Android andSBSDKPDFRendererPageSize
for iOS.
- Added support for custom PDF metadata. Check
- New PDF renderer for simple PDF and "sandwiched" PDF generation.
- Added new RTU UI components:
- 🚀 Improvements:
- Improved the speed of barcode recognition for most barcode symbologies.
- Enhanced control over how to handle GS1 messages in barcodes.
- New overloads for
SBSDKInitializer.Initialize
to enable initialization directly from a MAUI application instead of platform specific application objects. - New improved document detector with better performance and less memory consumption.
- Added new Optical Character Recognition engine based on machine learning algorithms. The new OCR engine currently supports all languages with latin letters, there is no need to specify the languages for it. The speed of text recognition has increased twofold. We can still use the legacy recognition by setting
OCRMode
enum type asLegacy
in theOcrConfig
class. BatchBarcodeScannerConfiguration
now supports theBarcodeFormats
property for filtering barcodes.- Improved accuracy and detection speed of
QrCode
,Code39
, andCode93
barcode types. - Improved contour lines detection with ML Based detection.
- Android:
- Stripped down the Android dynamic symbol table in native libraries. As a result, the size of the native shared libraries has decreased.
- Optimized the size of native libraries integrated into the Scanbot SDK.
- Enhanced error handling behavior when deleting SDK pages.
- Improved quality and speed of the Document Contour detector.
- Decreased size of Document Contour detector ML model.
- 🐞 Bug fixes:
- Before, for certain invalid decoding of QR, an exception was thrown from ZXing. Now we rigorously treat this as a format error.
- Before, we have returned
CODE_25
results whenINDUSTRIAL_2_OF_5
was enabled andCODE_25
was disabled. Now, we do not return theCODE_25
result for such decoding options. - Fixed the detection of a few false positive RSS Expanded codes in live mode.
IScanbotSDKService.WriteTiffAsync
,IScanbotSDKService.PerformOcrAsync
andIScanbotSDKService.CreatePdfAsync
all receiveIEnumerable<FileImageSource>
instead ofIEnumerable<ImageSource>
. With the prior implementations, an invalid cast exception was thrown when a set of files wasn't provided because the internals do, in fact, require files. See also ⚠️ Breaking changes.- Android:
- Fixed potential memory leak in all RTU-UI screens.
- Fixed some OOM crashes on low to midrange devices.
- Fixed false positives for
CODE_39
andCODABAR
barcodes. - Fixed colors not being applied to fields in
GenericDocumentRecognizerConfiguration
. - Fixed bug with invisible back button on Document Scanner RTU UI screens when no Camera permission was granted.
- Fixed the logic in
AutoSnapProgressEnabled
andPolygonAutoSnapProgressEnabled
methods inFinderDocumentScannerConfiguration
andDocumentScannerConfiguration
. - Corrected mapping of
UserGuidanceStrings
inCheckRecognizerConfiguration
. - Fixed the
TopBarButtonsColor
option for theMrzScannerConfiguration
andHealthInsuranceCardScannerConfiguration
. - Fixed
EnableCameraButtonTitle
andEnableCameraExplanationText
parameters onBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
.
- iOS:
- Fixed a crash when denying camera permission.
- Fixed a bug with magnetic lines in CroppingScreen RTU UI.
- Fixed a bug where the polygon should be mirrored when using the front camera in
DocumentScannerResult
. - Fixed a bug where
AutomaticSelectionEnabled
was not working properly inBarcodeScannerConfiguration
. - Fixed a bug where
FlashEnabled
was not working properly inHealthInsuranceCardScannerConfiguration
. - Fixed a bug with the iPad 5th generation where captured images were wrong.
- Fixed a bug where the finder text hint was still showing when
ViewFinderEnabled
was disabled inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. - Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
- Fixed a bug in
SBSDKOpticalCharacterRecognizer
whereRecognizeText
was unable to detect text on imageStorage when the encryption was enabled. - Fixed the issue when the top and bottom toolbars' background color in
SBSDKUICroppingViewController
didn't update on dark mode change, when set toUIColor.systemBackground
.
- ⚠️ Breaking changes:
- GS1 codes are now handled differently for various barcode types. Using the default option
GS1Handling.Parse
will give the same result as before for all barcode types, except forBarcodeFormat.RssExpanded
. Previously, forRssExpanded
, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, use the optionGS1Handling.Decode
. IScannedPageService
renamed toIScannedPage
.- Major updates in
IScanbotSDKService
:- Replaced
EstimateBlurriness
withDetectDocumentQualityAsync
. - Replaced
OcrConfigs
withDefaultOcrConfig
which provides the default OCR configs from the native platforms. - Replaced
public LicenseInfo GetLicenseInfo()
withpublic LicenseInfo LicenseInfo { get; }
. - Updated return value of
ApplyImageFilterAsync
fromTask<ImageSource>
toTask<FileImageSource>
. - Replaced
CreatePdfAsync(List<ImageSource> images, PDFPageSize pageSize)
withCreatePdfAsync(IEnumerable<FileImageSource> files, PDFPageSize pageSize = PDFPageSize.Custom, PDFPageOrientation pdfPageOrientation = PDFPageOrientation.Auto, OcrConfig configuration = null)
. - Replaced
PerformOcrAsync(IEnumerable<ImageSource> images, IEnumerable<string> languages, string pdfOutputPath = null)
withTask<OcrResult> PerformOcrAsync(IEnumerable<FileImageSource> sources, OcrConfig configuration = null, string pdfOutputPath = null)
- Replaced
WriteTiffAsync(IEnumerable<ImageSource> images, TiffOptions options = null)
withWriteTiffAsync(IEnumerable<FileImageSource> files, TiffOptions options = null)
.
- Replaced
- Replaced property
Gs1DecodingEnabled
of typebool
withGs1HandlingMode
of typeGS1Handling
enum inBarcodeScannerAdditionalParameters
. - The
DocumentSDK.MAUI.iOS
andDocumentSDK.MAUI.Droid
assemblies merged into one assembly namedDocumentSDK.MAUI
. - All types under the
DocumentSDK
andBarcodeSDK
namespaces have been moved to theScanbotSDK
namespace. - The
ScanbotSDK.NET
package is no longer referenced as a dependency. All needed files and dependencies are included directly in the package. - Renamed all the extension methods to
ToNative()
andToMaui()
. The extension methods which are responsible for converting Maui class objects to Native(iOS/Android) class objects or vice versa. Same with the conversion of Maui enums to Native enums or vice versa.
- GS1 codes are now handled differently for various barcode types. Using the default option
- 🚙 Under the hood:
- Upgraded the native Scanbot Android SDK to v4.2.0 and Scanbot iOS SDK to v4.2.2
- Added "libharu" library to dependencies.
- Android:
- Blackview and Caterpillar brands are now excluded from GpuAcceleration-supported devices.
- Removed "Android PDF Writer" library from dependencies.
- Upgraded OpenCV version to 4.8.
- Added "icu4c" library to dependencies.
- Updated version of Nameof C++ library to v0.10.3.
- Disabled GPU acceleration for Redmi 9 models, Samsung Galaxy Grand Prime and devices with Android older than 6.
- iOS:
- Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK which complies with the latest Apple specs.
- Added new static property
MaximumRecommendedImageSize
toSBSDKDeviceInformation
.
MAUI - Version 2.3.1 (11 Oct 2023)
- 🐞 Bug fixes:
- Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
MAUI - Version 2.3.0 (15 Sep 2023)
- 🎉 New:
- More supported barcode types:
- Micro QR Code
- An additional Ready-To-Use UI Component in the form of Finder Document Scanner.
- Support for configuring a confirmation dialog for the Barcode Scanner Ready-To-Use UI Component.
- More supported barcode types:
- 🚀 Improvements:
- Improved accuracy and detection speed of QR_CODE, Code39, and Code93 barcode types.
- Added support for inverted PDF-417 barcodes.
- 🐞 Bug fixes:
- Fixed
NullReferenceException
when using theFinderWidthRelativeToDeviceWidth
orFinderHeightRelativeToDeviceWidth
properties inDocumentSDK.MAUI.MrzScannerConfiguration
. DocumentSDK.MAUI.ScanbotSDK.LicenseInfo
now returns the correct license status.
- Fixed
- ⚠️ Breaking changes:
- For the
DocumentSDK.MAUI.Constants.MedicalCertificateCheckboxType
enum, changedRequiresCareYes
toCareYes
. - Renamed the
BarcodeSDK.MAUI.Constants.OverlayFormat
enum toBarcodeSDK.MAUI.Constants.BarcodeTextFormat
.- Any types which use the enum have also been updated, such as
BarcodeSDK.MAUI.Configurations.SelectionOverlayConfiguration
.
- Any types which use the enum have also been updated, such as
- If using named parameters for
BarcodeSDK.MAUI.Configurations.SelectionOverlayConfiguration
, the misspelledautomaticSelectionEnaled
parameter has been renamed toautomaticSelectionEnabled
.
- For the
- 🚙 Under the hood:
- The native Scanbot Android SDK upgraded to v2.3.0.
- The native Scanbot iOS SDK upgraded to v2.3.1.
MAUI - Version 2.2.0 (26 Jun 2023)
- 🎉 First release of the
ScanbotSDK.MAUI
NuGet package for MAUI. - Provides Ready-To-Use UI Components - a set of easy to integrate and customize high-level MAUI components for the most common tasks in Scanbot SDK:
- Document Scanner
- Cropping UI & ImageFilters
- Barcode & QR code Scanner
- MRZ Scanner
- Generic Document Recognizer
- EHIC Scanner
- Check Recognizer
- Provides additional SDK features based on image picked from the device photos application:
- Detect Barcodes on Image
- Detect Document on Image
- New unified Scanbot SDK API:
- Idiomatic asynchronous design
- MAUI-based unified API for Android & iOS
- Example App demonstrating the new functionality: scanbot-sdk-maui-example
What do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.