Skip to main content

Changelog | .NET Document Scanner SDK

.NET - Version 4.2.0 (23 Apr 2024)

  • 🎉 New:
    • Both Android and iOS:
      • Added new feature - Document Quality Analyzer. It analyzes the text quality (legibility) on images.
      • Added new component - VIN (Vehicle identification number) scanner.
      • New generation of Text Data Scanner component. The quality and speed of scanning has significantly improved.
      • MRZ support for td1 long document standard.
      • Added support for Kuwait ID cards in the MRZ scanner.
      • Added support for Israelian checks to the check recognizer. Check SBSDKCheckDocumentRootType and IO.Scanbot.Check.Entity.RootDocumentType enums.
      • Added support for more PDF page sizes. Check SBSDKPDFRendererPageSize and IO.Scanbot.Sdk.Model.PageSize enums.
      • Added support for PDF orientations. Check SBSDKPDFRendererPageOrientation and IO.Scanbot.Pdf.Model.PageDirection enums.
    • Android:
      • Added new supported barcode formats. Check BarcodeFormat enum for:
        • UspsIntelligentMail
        • RoyalMail
        • JapanPost
        • RoyalTntPost
        • AustraliaPost
        • Gs1Composite
        • DatabarLimited
      • The new PDF renderer for simple PDF and "sandwiched" PDF generation also allows flexibility to add custom PDF metadata.
    • iOS:
      • Added new classes SBSDKDocumentQualityAnalyzer, SBSDKOpticalCharacterRecognizer, SBSDKOpticalCharacterRecognizerConfiguration and SBSDKTextLayoutRecognizer.
      • Added TrackingOverlayController property to SBSDKBarcodeScannerViewController.
      • Added property ExtensionFilter to all barcode scanning APIs and added property Extension to SBSDKBarcodeScannerResult.
      • Introduced new classes and properties to manage barcode tracking overlay.
      • Added functions to SBSDKDeviceInformation to get the total, used and unused disk space on the device.
      • Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK which complies with the latest Apple specs.
      • Added SetupDefaultLicenseFailureHandlerWithCompletion method to the ScanbotSDKGlobal class.
      • Added new method WidestAvailableBackFacingCamera to SBSDKCameraDevice.
      • Added support for new barcode types. Check SBSDKBarcodeType enum for:
        • USPSIntelligentMail
        • RoyalMail
        • JapanPost
        • RoyalTNTPost
        • AustraliaPost
        • GS1Composite
        • DatabarLimited
  • 🚀 Improvements:
    • Both Android and iOS:
      • Added new Optical Character Recognition engine based on machine learning algorithms that is much faster and less error-prone. The new OCR engine currently supports all languages with Latin letters, there is no need to specify the languages for it. The legacy engine based on Tesseract can still be used.
      • Added more control over how to handle GS1 messages in barcodes. Check Gs1 Handling property in the Barcode scanner configurations classes.
      • Improved the document detector with better performance and less memory consumption.
    • Android:
      • Added SetBarcodeFormatsFilter(barcodeFormat: List<BarcodeFormat>) method in BatchBarcodeScannerConfiguration class.
      • Optimized default and custom preview/picture size selection in the ScanbotCameraXView.
      • Optimized SetForceMaxSnappingSize(enabled: bool) behavior in the ScanbotCameraXView.
      • Improved pinch-to-zoom gesture in ScanbotCameraXView.
      • Added SetLifecycleOwner(lifecycleOwner: ILifecycleOwner) method for ViewController in DocumentScannerView and BarcodeScannerView to improve compatibility with Compose UI.
  • 🐞 Bug fixes:
    • Android:
      • Fixed some OOM crashes on low to midrange devices.
      • Fixed EnableCameraButtonTitle and EnableCameraExplanationText parameters on Batch and Barcode RTU UI screen configs.
      • Fixed crash in GenericTextRecognizer on ARM v7 devices.
      • Fixed behavior of OcrResolutionLimit configuration in GenericTextRecognizer.
    • iOS:
      • Fixed a bug where the finder text hint was still showing when ViewFinderEnabled was disabled in SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController.
      • Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
      • Fixed an issue where the MRZ Scanner was not recognizing the new standard of Belgian ID Cards.
      • 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:
    • Android:
      • If you are using SetPictureSize(pictureSize: Size), SetCameraFrameSize(frameSize: Size) or SetPreviewFrameSize(frameSize: Size), make sure input Size has the correct orientation (fits the view or display size).
      • All scanner components have been switched to zoom ratio (values 1x, 2x, etc.) instead of linear zoom (from 0 to 1). Methods renamed: SetOpticalZoomRange() -> SetPhysicalZoomRange(), SetOpticalZoomLevel() -> SetPhysicalZoomRatio() in ScanbotCameraXView, DocumentScannerView, BarcodeScanAndCountView and BarcodeScannerView. setPhysicalZoomRange() and setPhysicalZoomRatio() accept possible zoom values from 0.5x up to 100x. NOTE: if the value sent to the camera is out of range for a specific device's capabilities, then the camera will try to set the max or min possible for that specific device. eg. Zoom 100x will only work on some high-end Samsung devices, whereas other devices will only have 12x-30x max. The same goes for minimum supported values, 0.5x is a wide-format camera module that does not exist on many Android devices.
      • Removed deprecated BlurEstimator and added DocumentQualityAnalyzer feature. Please use SDK function CreateDocumentQualityAnalyzer(...) instead of CreateBlurEstimator(...).
      • Changed signature of RenderDocumentFromImages() and RenderDocumentFromPages() methods - pageSize: PDFPageSize was replaced with more detailed pdfConfig: PdfConfig parameter.
      • Changed namespace from IO.Scanbot.Sdk.Process.PDFPageSize to IO.Scanbot.Pdf.Model.PageSize.
      • Removed parameter forceCpu: Boolean from ImageProcessor methods.
      • The TextDataScannerConfiguration now requires an instance of TextDataScannerStep for initialization.
      • Replaced CameraModule.FrontMirrored with CameraModule.Front, which behaves as mirrored mode.
    • iOS:
      • Removed SBSDKImageMetricsAnalyzer, SBSDKImageChannelMetrics and UIImage+SBSDKMetricsAnalysis.
      • Refactored all OCR and PDF rendering classes to incorporate the new OCR engine and simplify the APIs.
      • Removed SBSDKOpticalTextRecognizer and SBSDKTextOrientationRecognizer.
      • Renamed SBSDKPageOrientation to SBSDKTextOrientation.
      • Changed function signatures of methods in SBSDKPDFRenderer and SBSDKUIPDFRenderer.
      • Added new values and removed unused values in SBSDKPDFRendererPageSize.
      • Removed barcode type SBSDKBarcodeTypeUnknown.
      • Removed property AutoCancelTimeout from SBSDKUIMRZScannerBehaviorConfiguration.
      • Removed TextRecognitionLanguages and TextFilterStrategy from SBSDKGenericTextLineRecognizerViewController.
      • Removed TextFilterStrategy from SBSDKUITextDataScannerStep.
      • Removed SupportedLanguages from SBSDKUITextDataScannerBehaviorConfiguration.
      • Removed SelectionOverlayTextFor from SBSDKUIBarcodeScannerViewControllerDelegate.
      • Renamed SelectionOverlayConfiguration to TrackingOverlayConfiguration in SBSDKUIBarcodeScannerConfiguration and SBSDKUIBarcodesBatchScannerConfiguration.
      • Renamed SBSDKUIBarcodeSelectionOverlayConfiguration to SBSDKUIBarcodeTrackingOverlayConfiguration.
      • Replaced the properties PolygonEnabled, PolygonColor, PolygonFillColor and PolygonLineWidth by the property PolygonStyle in SBSDKBarcodeScanAndCountViewController.
      • The class SBSDKBlurrinessEstimator has been removed and replaced by the far superior SBSDKDocumentQualityAnalyzer.
      • Changed default value of the finder aspect ratio in SBSDKUIFinderDocumentScannerUIConfiguration to DIN A4 portrait.
      • Removed prefix Sbsdk_ from all the method names in UIImage_SBSDKFiltersAndWarping interface. (eg: Sbsdk_imageWarpedByPolygon to ImageWarpedByPolygon).
  • 🚙 Under the hood:
    • The native Scanbot Android SDK upgraded to v4.2.0.
    • The native Scanbot iOS SDK upgraded to v4.2.2.

.NET - Version 2.3.1 (11 Oct 2023)

  • 🐞 Bug fixes:
    • Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.

.NET - Version 2.3.0 (15 Sep 2023)

  • 🎉 New:
    • Both Android and iOS:.
      • Added support for the Micro QR barcode type.
      • Added view finder flag for barcode scanners (see more details below).
      • Added support for Scan and Count of Barcodes (see more details below).
    • Android:
      • Added new function setViewFinderEnabled to:
        • IO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration
        • IO.Scanbot.Sdk.UI.View.Barcode.Batch.Configuration.BatchBarcodeScannerConfiguration
      • Introduced a scanned barcode confirmation dialog in IO.Scanbot.Sdk.UI.View.Barcode.BarcodeScannerActivity RTU screen:
        • Added SetConfirmationDialogConfiguration to IO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration for modifying dialog UI.
      • Added Scan and Count of Barcodes feature.
        • Use IO.Scanbot.Sdk.Barcode.UI.BarcodeScanAndCountView to integrate it into your app.
    • iOS:
      • Added new property ViewFinderEnabled to:
        • ScanbotSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
        • ScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
      • Added new Classic UI component Scanbot.iOS.SBSDKBarcodeScanAndCountViewController which enables you to scan barcodes multiple times using the shutter button.
      • Added new properties ConfirmationDialogTitle and ConfirmationDialogMessage to
        • ScanbotSDK.iOS.SBSDKUIBarcodeScannerTextConfiguration.
      • Machine-readable-zone results have been refactored (please see ⚠️ Breaking changes):
        • Added new properties to ScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult:
          • GenericDocument
          • TravelDocumentTypeVariantField
          • DateOfIssueField
        • Added new value CrewMemberCertificate to the Scanbot.iOS.SBSDKMachineReadableZoneRecognizerResultDocumentType enum.
        • Added new values to the Scanbot.iOS.SBSDKMachineReadableZoneRecognizerFieldName enum:
          • DateOfIssuance
          • TravelDocumentTypeVariant
      • Added new function FlipHorizontally to ScanbotSDK.iOS.SBSDKPolygon.
      • Added new property IsMirrored to ScanbotSDK.iOS.SBSDKCameraDevice.
  • 🚀 Improvements:
    • Both Android and iOS:
      • Improved accuracy and detection speed of several barcode types, such as QR_CODE, Code39, and Code93.
      • Added support for inverted PDF-417 barcodes.
    • iOS:
      • Changed the default value for the DocumentType property in Scanbot.iOS.SBSDKUIGenericDocumentRecognizerBehaviorConfiguration
        • All documents are recognised by default now.
      • Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in:
        • All Classic UI components
        • All RTU-UI components
        • The ScanbotSDK.iOS.SBSDKZoomRange class
      • Support for generic documents in the MRZ recognizer.
  • 🐞 Bug fixes:
    • Android:
      • Fixed a crash within the barcode detector.
      • Fixed detection of several RSS_EXPANDED false-positives in live mode.
      • Fixed a bug causing incorrect (mirrored) preview when CameraModule.Front is set up for IO.Scanbot.Sdk.UI.Camera.ScanbotCameraXView.
      • Fixed the logic in setAutoSnapProgressEnabled and setPolygonAutoSnapProgressEnabled methods in:
        • IO.Scanbot.Sdk.UI.View.Camera.Configuration.FinderDocumentScannerConfiguration
        • IO.Scanbot.Sdk.UI.View.Camera.Configuration.DocumentScannerConfiguration
      • Fixed TextDataScaner.textDataScannerStep not applying from JSON configuration.
      • Ignored iOS-only parameter shutterButtonIndicatorColor when mapping:
        • IO.Scanbot.Sdk.UI.View.Camera.Configuration.DocumentScannerConfiguration
        • IO.Scanbot.Sdk.UI.View.Camera.Configuration.FinderDocumentScannerConfiguration
      • Corrected mapping of userGuidanceStrings JSON configuration for IO.Scanbot.Sdk.UI.View.Check.Configuration.CheckRecognizerConfiguration.
    • iOS:
      • Fixed the detection of a few false positive RSS Expanded codes in live mode.
      • Fixed an unexpected behavior of the barcode scanner when passing ScanbotSDK.iOS.SBSDKBarcodeType.Unknown as accepted barcode type.
      • Fixed a bug in all Classic UI and RTU-UI components where the RecognitionEnabled property might not have worked as intended.
      • Fixed a bug where ocrResolutionLimit was not being used in: ScanbotSDK.iOS.SBSDKUITextDataScannerBehaviorConfiguration from JSON.
      • Fixed a bug where the polygon should be mirrored when using the front camera in:
        • ScanbotSDK.iOS.SBSDKDocumentScannerViewController
        • ScanbotSDK.iOS.SBSDKUIDocumentScannerViewController
      • Fixed a bug where automaticSelectionEnabled was not working properly in ScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerViewController.
  • ⚠️ Breaking changes:
    • Android:
      • API breaking changes in the MRZ scanner result interface:
        • Replaced IO.Scanbot.Mrzscanner.Model.MRZRecognitionResult result model class with IO.Scanbot.Mrzscanner.Model.MRZGenericDocument.
        • Removed the Fields list and MRZField class, instead:
          • All detected fields are now stored in the Document.Fields list in IO.Scanbot.Mrzscanner.Model.MRZGenericDocument.
        • The travelDocType: MRZDocumentType is now represented by the documentType: MRZDocumentType field in the MRZGenericDocument instance.
        • Date fields in the IO.Scanbot.Mrzscanner.Model.MRZGenericDocument result model now contain an unformatted date string.
        • Replaced IO.Scanbot.Mrzscanner.Model.MRZDocumentType class with IO.Scanbot.Mrzscanner.Model.MRZGenericDocument.MRZDocumentType.
    • iOS:
      • Several delegate method names were renamed, such as:
        • ScanbotSDK.iOS.SBSDKCheckRecognizerViewControllerDelegate:
          • CheckRecognizerViewController to DidRecognizeCheck.
          • CheckRecognizerViewController to DidChangeState.
          • CheckRecognizerViewControllerShouldRecognize to ShouldRecognize.
        • ScanbotSDK.iOS.SBSDKGenericDocumentRecognizerViewControllerDelegate:
          • DocumentRecognizerViewController to DidRecognizeResult.
          • GenericDocumentRecognizerViewControllerShouldRecognize to ShouldRecognize.
        • ScanbotSDK.iOS.SBSDKHealthInsuranceCardScannerViewControllerDelegate:
          • HealthInsuranceCardScannerViewController to DidScanHealthInsuranceCard.
          • HealthInsuranceCardScannerViewControllerShouldRecognize to ShouldRecognize.
        • ScanbotSDK.iOS.SBSDKUIHealthInsuranceCardScannerViewControllerDelegate:
          • HealthInsuranceCardDetectionViewController to DidDetectCard.
          • HealthInsuranceCardDetectionViewControllerDidCancel to DidCancel.
        • ScanbotSDK.iOS.SBSDKImageEditingViewControllerDelegate:
          • ImageEditingViewController to DidApplyChangesWithPolygon.
          • ImageEditingViewControllerDidCancelChanges to DidCancelChanges.
          • ImageEditingViewControllerDidChangePolygon to DidChangePolygon.
          • ImageEditingViewControllerCancelButtonItem to CancelButtonItem.
          • ImageEditingViewControllerApplyButtonItem to ApplyButtonItem.
          • ImageEditingViewControllerToolbarStyle to ToolbarStyle.
          • ImageEditingViewControllerToolbarTintColor to ToolbarTintColor.
          • ImageEditingViewControllerToolbarItemTintColor to ToolbarItemTintColor.
          • ImageEditingViewControllerRotateClockwiseToolbarItem to RotateClockwiseToolbarItem.
          • ImageEditingViewControllerRotateCounterClockwiseToolbarItem to RotateCounterClockwiseToolbarItem.
        • ScanbotSDK.iOS.SBSDKDocumentScannerViewControllerDelegate:
          • DocumentScannerViewController to DidSnapDocumentImage.
          • DocumentScannerViewControllerShouldDetectDocument to ShouldDetectDocument.
          • DocumentScannerController to DidSampleVideoFrame.
          • DocumentScannerViewControllerWillSnapImage to WillSnapImage.
          • DocumentScannerViewControllerDidFailSnappingImage to DidFailSnappingImage.
          • DocumentScannerViewController to ShouldAutoSnapImageWithForDetectionResult.
          • DocumentScannerViewControllerLineColor to PolygonLineColorForStatus.
          • DocumentScannerViewController to PolygonFillColorForStatus.
          • DocumentScannerViewController to ConfigureStatusDetectionLabel.
        • ScanbotSDK.iOS.SBSDKUIGenericDocumentRecognizerViewControllerDelegate:
          • GenericDocumentRecognizerViewController to DidFinishWithDocuments.
          • GenericDocumentRecognizerViewControllerDidCancel to DidCancel.
        • ScanbotSDK.iOS.SBSDKMedicalCertificateScannerViewControllerDelegate:
          • MedicalCertificateScannerViewController to DidRecognizeMedicalCertificate.
          • MedicalCertificateScannerViewControllerShouldRecognize to ShouldRecognize.
          • MedicalCertificateScannerViewController to DidChangeState.
        • ScanbotSDK.iOS.SBSDKUIMedicalCertificateScannerViewControllerDelegate:
          • MedicalScannerViewController to DidFinishWithResult.
          • MedicalScannerViewControllerDidCancel to DidCancel.
        • ScanbotSDK.iOS.SBSDKUIViewControllerDelegate:
          • ViewControllerShouldCancel to ShouldCancel.
          • ViewControllerShouldFinish to ShouldFinish.
      • Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0!
      • Removed classes:
        • ScanbotSDK.iOS.SBSDKUIMachineCodesCollection
        • ScanbotSDK.iOS.SBSDKMultipleObjectScannerViewController
        • ScanbotSDK.iOS.SBSDKBusinessCardsImageProcessor
        • ScanbotSDK.iOS.SBSDKMultipleObjectsDetector
        • ScanbotSDK.iOS.SBSDKUIMultipleObjectScannerViewController and its configuration classes.
        • ScanbotSDK.iOS.SBSDKBaseCameraViewController
      • Renamed the property AcceptedMachineCodeTypes to AcceptedBarcodeTypes in:
        • ScanbotSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
        • ScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
      • Machine-readable-zone results have been refactored:
        • Date fields in machine-readable-zones are returned unformatted now, e.g. in the format 'YYMMDD'. Previously we tried to convert them to the format 'DD.MM.YY'.
        • Removed value DiscreetIssuingStateOrOrganization from the ScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerFieldName enum.
        • Removed value TravelDocument from the ScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResultDocumentType enum.
        • Removed property DiscreetIssuingStateOrOrganizationField from ScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult.
        • Removed property CheckDigitsCount from ScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult.
  • 🚙 Under the hood:
    • The native Scanbot Android SDK upgraded to v2.3.0.
    • The native Scanbot iOS SDK upgraded to v2.3.1.

.NET - Version 2.2.0 (26 Jun 2023)

  • 🎉 First release of the ScanbotSDK.NET NuGet package for Native iOS and Android APIs.
  • Provides Ready-To-Use UI Components - a set of easy to integrate Native wrappers of .NET based on iOS and Android native 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?