Skip to main content

Changelog

tip

For additional details about the API, please refer to our API reference documentation.

MAUI - Version 5.1.1 (4 Oct 2024)

  • 🚀 Improvements:
    • Re-added support for the net-8 target framework to make it easier to use our configuration classes and interfaces for unit testing.
  • 🐞 Bug fixes:
    • Fixed reference issues when using our MAUI package in more complex project structures.

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 type GenericDocumentRootType[] in the GenericDocumentRecognizerConfiguration 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 function ScanbotSDK.SDKService.WriteTiffAsync(...).
    • Added AcceptedBrightnessThreshold in the DocumentScannerConfiguration and FinderDocumentScannerConfiguration.
    • Added ReturnCroppedDocumentImage in the MedicalCertificateRecognizerConfiguration.
  • 🚀 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 the BatchBarcodeScannerConfiguration.)
          • CameraPreviewMode
          • UseButtonsAllCaps
          • DelayAfterScan
          • TouchToFocusEnabled
          • MinFocusDistanceLock
        • For iOS only (accessible through #if iOS):
          • FocusLockEnabled
          • FocusLockPosition
          • DoubleTapToZoomEnabled
          • PinchToZoomEnabled
          • ShouldAnimateZooming
  • 🐞 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 and BarcodeScanAndCountView must now be wrapped inside ScanbotClassicUIContainer. 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 is ScanbotSDK.MAUI.Document.DocumentScannerConfiguration
      • ScanbotSDK.MAUI.CheckRecognizerConfiguration is ScanbotSDK.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 with ParametricFilter object in the IScannedPage interface. This change can impact the data saved in the local storage, while migrating from the previous versions. Note: We can also set the ImageFilter to ParametricFilter directly. The SDK will implicitly convert the old type and return a ParametricFilter.
    • Replaced parameter ImageFilter with ParametricFilter in the ScanbotSDK.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 under ScanbotSDK.MAUI. Also moved the Legacy Barcode Scanners from ScanbotSDK.ReadyToUseUIService to ScanbotSDK.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 to BarcodeFormat.Databar and BarcodeFormat.RssExpanded to BarcodeFormat.DatabarExpanded.
    • Moved DetectDocumentAsync from ScanbotSDK.SDKService to ScanbotSDK.DataDetectionService, keeping all data detectors(from an ImageSource) in a single interface.
    • iOS:
      • MinFocusDistanceLock removed from BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration.
        • FocusLockEnabled and FocusLockPosition 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.
  • 🚙 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 set PDFSize, PDFOrientation, PDFAttributes for creating a PDF document. Please check ScanbotSDK.MAUI.SDKService.CreatePdfAsync(...). The PDFAttributes class allows the user to set the PDF metadata.
    • Added a new property ScanbotOCR and method Tesseract(...) in OcrConfig 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.
  • 🐞 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(...)
  • ⚠️ Breaking changes:
    • The OCRMode enum types ML and Legacy are renamed with ScanbotOCR and Tesseract respectively.
    • Replaced ScanbotSDK.MAUI.SDKService.CreatePdfAsync(IEnumerable<FileImageSource> files, PDFPageSize pageSize, PDFPageOrientation pdfPageOrientation, OcrConfig configuration) with ScanbotSDK.MAUI.SDKService.CreatePdfAsync(IEnumerable<FileImageSource> files, PDFConfiguration configuration).

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 in IScanbotService.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 in BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration.
    • Added ExtensionFilter in BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration. Added Extension property in Barcode 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 and SBSDKPDFMetadataProcessor for iOS.
        • Added support for portrait, landscape and auto page orientation. Check IO.Scanbot.Pdf.Model.PageDirection in Android and SBSDKPDFRendererPageOrientation for iOS.
        • Extended list of supported page sizes (A3, A5, B4, B5, etc.). Check IO.Scanbot.Pdf.Model.PageSize for Android and SBSDKPDFRendererPageSize for iOS.
  • 🚀 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 as Legacy in the OcrConfig class.
    • BatchBarcodeScannerConfiguration now supports the BarcodeFormats property for filtering barcodes.
    • Improved accuracy and detection speed of QrCode, Code39, and Code93 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 when INDUSTRIAL_2_OF_5 was enabled and CODE_25 was disabled. Now, we do not return the CODE_25 result for such decoding options.
    • Fixed the detection of a few false positive RSS Expanded codes in live mode.
    • IScanbotSDKService.WriteTiffAsync, IScanbotSDKService.PerformOcrAsync and IScanbotSDKService.CreatePdfAsync all receive IEnumerable<FileImageSource> instead of IEnumerable<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 and CODABAR 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 and PolygonAutoSnapProgressEnabled methods in FinderDocumentScannerConfiguration and DocumentScannerConfiguration.
      • Corrected mapping of UserGuidanceStrings in CheckRecognizerConfiguration.
      • Fixed the TopBarButtonsColor option for the MrzScannerConfiguration and HealthInsuranceCardScannerConfiguration.
      • Fixed EnableCameraButtonTitle and EnableCameraExplanationText parameters on BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration.
    • 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 in BarcodeScannerConfiguration.
      • Fixed a bug where FlashEnabled was not working properly in HealthInsuranceCardScannerConfiguration.
      • 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 in BarcodeScannerConfiguration and BatchBarcodeScannerConfiguration.
      • Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
      • Fixed a bug in SBSDKOpticalCharacterRecognizer where RecognizeText 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 to UIColor.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 for BarcodeFormat.RssExpanded. Previously, for RssExpanded, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, use the option GS1Handling.Decode.
    • IScannedPageService renamed to IScannedPage.
    • Major updates in IScanbotSDKService:
      • Replaced EstimateBlurriness with DetectDocumentQualityAsync.
      • Replaced OcrConfigs with DefaultOcrConfig which provides the default OCR configs from the native platforms.
      • Replaced public LicenseInfo GetLicenseInfo() with public LicenseInfo LicenseInfo { get; }.
      • Updated return value of ApplyImageFilterAsync from Task<ImageSource> to Task<FileImageSource>.
      • Replaced CreatePdfAsync(List<ImageSource> images, PDFPageSize pageSize) with CreatePdfAsync(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) with Task<OcrResult> PerformOcrAsync(IEnumerable<FileImageSource> sources, OcrConfig configuration = null, string pdfOutputPath = null)
      • Replaced WriteTiffAsync(IEnumerable<ImageSource> images, TiffOptions options = null) with WriteTiffAsync(IEnumerable<FileImageSource> files, TiffOptions options = null).
    • Replaced property Gs1DecodingEnabled of type bool with Gs1HandlingMode of type GS1Handling enum in BarcodeScannerAdditionalParameters.
    • The DocumentSDK.MAUI.iOS and DocumentSDK.MAUI.Droid assemblies merged into one assembly named DocumentSDK.MAUI.
    • All types under the DocumentSDK and BarcodeSDK namespaces have been moved to the ScanbotSDK 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() and ToMaui(). 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.
  • 🚙 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 to SBSDKDeviceInformation.

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.
  • 🚀 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 the FinderWidthRelativeToDeviceWidth or FinderHeightRelativeToDeviceWidth properties in DocumentSDK.MAUI.MrzScannerConfiguration.
    • DocumentSDK.MAUI.ScanbotSDK.LicenseInfo now returns the correct license status.
  • ⚠️ Breaking changes:
    • For the DocumentSDK.MAUI.Constants.MedicalCertificateCheckboxType enum, changed RequiresCareYes to CareYes.
    • Renamed the BarcodeSDK.MAUI.Constants.OverlayFormat enum to BarcodeSDK.MAUI.Constants.BarcodeTextFormat.
      • Any types which use the enum have also been updated, such as BarcodeSDK.MAUI.Configurations.SelectionOverlayConfiguration.
    • If using named parameters for BarcodeSDK.MAUI.Configurations.SelectionOverlayConfiguration, the misspelled automaticSelectionEnaled parameter has been renamed to automaticSelectionEnabled.
  • 🚙 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?