Skip to main content

Changelog | MAUI Document Scanner SDK

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 initalization 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?