Implemented new Document API to perform document creation and editing.
Implemented new Ready-To-Use Document Scanner screen with extended scanning and reviewing capabilities.
Added multiple overloads of Render(...) method in IPDFRenderer interface.
Added multiple overloads of RecognizeTextWithPdfFrom(...) method in IOpticalCharacterRecognizer interface.
Added multiple overloads of WriteTIFF() method in TIFFWriter class.
Added new property AddAdditionalQuietZone to BarcodeScannerAdditionalConfig.
Added a new predefined collection of barcodes, BarcodeFormat.POSTAL, which includes barcodes used in the postal industry.
Added support for 16KB page size (Android 15).
Added option MultipleScanningMode.AllowEmptySubmission to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
🚀 Improvements:
Improved MagnifierView.
AR overlay is enabled by default for FindAndPickScanningMode in Barcode Scanner RTU UI v2 screen.
For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
Improved false positive rate of UPC/EAN extensions in live mode.
🐞 Bug fixes:
Minor fixes for Barcode Scanner appearance in RTU UI v2 to make it consistent with its iOS counterpart.
Fix point sorting in ContourDetector.
Fixed KANJI mode for QR codes.
Fixed an issue with AR Overlay and barcode mapping in BarcodeScannerActivity RTU UI v2.0, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
Fixed image preprocessing for Document Quality Analyzer.
Fixed fallback in the "Background Clean" filter when the ML model is unavailable.
Fixed R8 obfuscation config for SDK logging classes.
Fixed a bug in ScanbotColor where setting IsArgb to true, resulted in a wrong color.
⚠️ Breaking changes:
IMPORTANT Dropped support for the target .net7.0-android.
All classes from the old Page API were marked as deprecated and moved to IO.Scanbot.Sdk.Persistence.Page.Legacy package.
Renamed methods to Render(...) in IPDFRenderer interface.
Changed Render(...) method signature in IPDFRenderer interface. Now it takes an array of Uris instead of the List of Uris.
Renamed WriteTIFFFromImages(...) and WriteTIFFFromFiles(...) methods to WriteTIFF(...) in the TIFFWriter class.
Renamed IO.Scanbot.Sdk.Process.Model.DocumentQualityResult to IO.Scanbot.Sdk.Process.Model.DocumentQuality.
Renamed IO.Scanbot.Sdk.Core.Contourdetector.DetectionStatus to IO.Scanbot.Sdk.Core.Contourdetector.DocumentDetectionStatus.
Changed the type of the Rotation field in the Page class to the IO.Scanbot.Sdk.Core.ImageProcessor enum.
Removed enum BarcodeDensity.
Removed property CodeDensity from BarcodeAdditionalParameters.
Removed enum values Validate and Decode from Gs1Handling and replaced them by DecodeStructure, DecodeFull, ValidateStructure and ValidateFull.
Removed property SharpnessAcceptanceFactor from GenericDocumentRecognizer and GenericDocumentRecognizerConfiguration for RTU UI screen.
Removed redundant fields BarcodeImagePath and BarcodePreviewFramePath from Result class in Barcode Scanner RTU UI v2.
Changed BarcodesRegexFilter config behavior for Barcode Scanner RTU UI v2. Barcodes are accepted if the barcode data contains the part that matches the regex.
Replaced Standard and ValidationStatus fields with ValidationErrors in the GS1.Element class.
Added new RTU-UI V2 component, see SBSDKUI2DocumentScannerController.
Added document capture animation in SBSDKDocumentScannerViewController.
Added CaptureAnimationConfiguration(...) and PolygonConfigurationFor(...) method to SBSDKDocumentScannerViewControllerDelegate.
Added class SBSDKDocumentAnimationConfiguration to configure document capture animation.
Added classes SBSDKScannedDocument and SBSDKScannedPage.
Added support for the new SBSDKScannedDocument class to SBSDKPDFRenderer, SBSDKUIPDFRenderer, SBSDKTIFFImageWriter and SBSDKOpticalCharacterRecognizer.
Added new constructor to SBSDKUI2Color that initializes from SBSDKUI2Color(UIColor uiColor).
Added new property IsAnimatingCapture to SBSDKDocumentScannerViewController.
Added new class SBSDKDocumentScannerPolygonConfiguration.
Added new properties PolygonConfigurationAccepted, PolygonConfigurationRejected and AutoSnapProgressPolygonConfiguration to SBSDKDocumentScannerViewController.
Added new method DidDetectPolygon(...) to SBSDKImageEditingViewControllerDelegate.
Added new property AddAdditionalQuietZone to SBSDKBarcodeAdditionalParameters.
Added new property PostalTypes to SBSDKBarcodeType.
Added a new property HardwareButtonsEnabled that enables snapping from the hardware volume buttons and the new hardware camera control button to SBSDKDocumentScannerViewController and SBSDKBarcodeScanAndCountViewController, available on iOS 17.2 and later.
Added support for German health insurance cards (front side) and European health insurance cards to SBSDKGenericDocumentRecognizer, SBSDKGenericDocumentRecognizerViewController and SBSDKUIGenericDocumentViewController.
Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
Added properties AustraliaPostCustomerFormat, UseIATA2OF5Checksum and UseCode11Checksum to SBSDKBarcodeAdditionalParameters and SBSDKUI2BarcodeRecognizerConfiguration.
Added support for PDF metadata attributes when rendering PDF files: see new class SBSDKPDFAttributes and new property pdfAttributes in SBSDKPDFRendererOptions.
Added new properties resultAccumulatorConfiguration to SBSDKGenericDocumentRecognizer and SBSDKGenericDocumentRecognizerViewController. See new class SBSDKGenericDocumentRecognizerAccumulationConfiguration.
Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
Added a new property AllowEmptySubmission to SBSDKUI2MultipleScanningMode.
🚀 Improvements:
Improved sharpness of captured images in SBSDKDocumentScannerViewController by tweaking various timing related default values, such as InitialScanDelay and AutoSnappingDelay.
The AR-overlay in SBSDKUI2FindAndPickScanningMode is now visible by default.
For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
Improved detection of UPC and EAN extensions.
The Generic Document Recognizer and its UI components now use the new Scanbot OCR engine under the hood. In order to scan for generic documents the additional OCR language data bundle is no longer required.
Improved document detection on booklet documents.
Improved performance of SBSDKDocumentQualityAnalyzer.
Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec.
Improved GS1 string handling with new modes for decoding and validation. See SBSDKGS1Handling.
Added the ability to display the scanned barcodes image in the FindAndPick usecase of SBSDKUI2BarcodeScannerViewController by specifying SBSDKUI2ExpectedBarcode.barcodeImageKey for the expected barcodes Imageproperty.
🐞 Bug fixes:
Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
Fixed a bug in the Find & Pick use case of SBSDKUI2BarcodeScannerViewController that never showed the expected barcodes title, but always the barcode value.
Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
Fixed a UI issue in SBSDKFinderView where the background color overlapped with the line color.
Fixed a UI issue in the RTU-UI v2 Find & Pick scanner in button sheet mode where the counter badge was not visible.
Fixed a crash when zooming with invalid MinZoom and MaxZoom values.
Fixed a bug that did not mirror the front camera as expected.
Fixed a bug in SBSDKUI2SingleScanDialogModelProvider where the default displayed texts were not correct.
Fixed KANJI mode for QR codes.
Fixed a bug with wrong raw bytes returned for some 2D barcode types.
Fixed potential broken generic document field validation status that could lead to a crash or undefined behavior.
Fixed a UI issue on the RTU-UI v2 barcode sheet screen where the subtitle label was being vertically cut off.
Fixed a UI issue on the RTU-UI v2 barcode confirmation sheet in the single use case where the loading indicator was not centered when the loading message was hidden.
Fixed a bug in Compression of SBSDKTIFFImageWriterParameters where the SBSDKTIFFImageWriter was not using the chosen compression value.
Fixed a bug in SBSDKCheckRecognizer where the AcceptedCheckTypes were not being applied correctly.
Fixed a bug in SBSDKUICheckRecognizerViewController where the AcceptedCheckStandards were not being applied correctly.
⚠️ Breaking Changes:
IMPORTANT Dropped support for the target .net7.0-ios.
Deprecated SBSDKUIDocumentScannerViewController, SBSDKUIFinderDocumentScannerViewController, SBSDKUICroppingViewController and their related classes.
Removed enum SBSDKBarcodeDensity.
Removed property CodeDensity from SBSDKBarcodeAdditionalParameters.
Removed enum values Validate and Decode from SBSDKGS1Handling and replaced them by DecodeStructure, DecodeFull, ValidateStructure and ValidateFull.
Removed property SharpnessAcceptanceFactor from SBSDKGenericDocumentRecognizer, SBSDKGenericDocumentRecognizerViewController and SBSDKUIGenericDocumentRecognizerBehaviorConfiguration.
Removed property isAccumulatingDocuments from SBSDKGenericDocumentRecognizer and SBSDKGenericDocumentRecognizerViewController.
Deprecated SBSDKHealthInsuranceCardRecognizer, SBSDKHealthInsuranceCardScannerViewController and SBSDKUIHealthInsuranceCardScannerViewController.
Removed class SBSDKPDFMetadataEditor.
Renamed the values of the enum SBSDKDocumentDetectionStatus.
Removed optional delegate methods PolygonFillColorFor(...) and PolygonFillColorFor(...) from SBSDKDocumentScannerViewControllerDelegate class.
Removed properties PolygonLineWidth, PolygonLineColorAccepted, PolygonLineColorRejected, PolygonFillColorAccepted, PolygonFillColorRejected, PolygonAutoSnapProgressEnabled, PolygonAutoSnapProgressColor, PolygonAutoSnapProgressLineWidth and PolygonCornerRadius from SBSDKDocumentScannerViewController.
Renamed property ResidencePermitFronBack to ResidencePermitFrontBack in SBSDKUIDocumentType.
Removed parameter Encrypter from all SBSDKPDFRenderer methods and added it to the initializer of the class.
Added new class-based image filters with customizable parameters:
SBSDKParametricFilter (abstract base class)
SBSDKScanbotBinarizationFilter
SBSDKCustomBinarizationFilter
SBSDKColorDocumentFilter
SBSDKBrightnessFilter
SBSDKContrastFilter
SBSDKGrayscaleFilter
SBSDKWhiteBlackPointFilter
SBSDKLegacyFilter (encapsulates the deprecated SBSDKImageFilterType filters)
Added support for German residence permit documents to SBSDKGenericDocumentRecognizer. See SBSDKGenericDocumentRootType.
Added a new configuration class SBSDKHealthInsuranceCardRecognizerParameters to configure the live detection recognizer in SBSDKHealthInsuranceCardRecognizer.
Added a new property liveDetectionParameters in SBSDKHealthInsuranceCardRecognizer.
Added a new property recognizerParameters in SBSDKHealthInsuranceCardScannerViewController and SBSDKUIHealthInsuranceCardScannerViewController.
Added property acceptedBrightnessThreshold to SBSDKDocumentScanner, SBSDKDocumentScannerViewController, SBSDKUIDocumentScannerBehaviourConfiguration and SBSDKUIFinderDocumentScannerBehaviorConfiguration.
Added property averageBrightness to SBSDKDocumentDetectionMetrics.
🚀 Improvements:
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.
Improved detection of UPC/EAN barcode extensions in live mode.
Improved image quality and capture speed on most iOS devices slightly by capturing HEIF images.
Added support of haptic feedback on capable devices.
SBSDKPDFPagesExtractor functions now create the output directory if it doesn't exist yet.
Added support for structured logging (OSLog) to the SDK (iOS 14+).
The health insurance card recognizer now implements the new scanbot OCR engine. The recognition is faster and more accurate than before.
🐞 Bug fixes:
Changed privacy manifest to comply with the latest Apple specs.
Fixes a bug with the asynchronous functions of SBSDKPDFPagesExtractor which returned an empty array of image URLs.
Fixed a bug with the generic textline recognizer not returning multiline results.
⚠️ Breaking Changes:
IMPORTANT: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
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.
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
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.
🎉 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: