Changelog
Version 5.1.0 (6 Sep 2024):
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Import
startBarcodeScanner
fromcapacitor-plugin-scanbot-sdk/ui_v2
to leverage the new UI. See our updated documentation for a full set of examples and use cases. - Added new data recognizers on still images:
recognizeMedicalCertificate
,recognizeEHIC
,recognizeGenericDocument
. - Added support for new barcode format MICRO_PDF_417.
MICRO_PDF_417
literal added to typeBarcodeFormat
. - Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added support for Canadian and UAE Check standards.
UAE
andCAN
literals added to typeCheckStandard
. - Added support for German residence permits (2011 and 2019 formats) in GenericDocumentRecognizer.
DE_RESIDENCE_PERMIT_FRONT
andDE_RESIDENCE_PERMIT_BACK
literals added to typeGenericDocumentType
. Wrapper classes added for the generic document result (DeResidencePermitFront, DeResidencePermitBack). - Added new class-based image filters ParametricFilters:
ScanbotBinarizationFilter
CustomBinarizationFilter
ColorDocumentFilter
BrightnessFilter
ContrastFilter
GrayscaleFilter
WhiteBlackPointFilter
LegacyFilter
(encapsulates the deprecated ImageFilterType filters)
- Added new
VALIDATION_FAILED
literal to typeCheckStatus
. - Added new type
DocumentQualityAnalyzerArguments
to better describe the input parameters for documentQualityAnalyzer. - Added new type
HealthInsuranceCardFieldType
to better describe the type property inHealthInsuranceCardField
. - Added new types
OCRBoundingBox
,OCRResultBlock
andOCRPage
to better describePerformOCRResult
. - Added new property
detectionStatus
of typeHealthInsuranceCardDetectionStatus
inHealthInsuranceCardScannerResult
. - Added new property
acceptedBrightnessThreshold
inDocumentScannerConfiguration
,FinderDocumentScannerConfiguration
. - Added new property
textDataValueFilter
inTextDataScannerConfiguration
. - Added new property
userDefinedFields
of typeTIFFUserDefinedField[]
inWriteTIFFArgument
. - Added new property
minimumNumberOfSymbols
inDocumentQualityAnalyzerArguments
. - Added new properties
pageFitMode
,dpi
,jpegQuality
,resample
andocrConfiguration
inCreatePDFArguments
. - Added new properties
engineMode
,lowPowerMode
,codeDensity
inDetectBarcodesOnImageArguments
. - Added new property
parametricFilters
inPage
. - Added new literals
OK_OFF_CENTER
andOK_BARCODE
to typeDetectionStatus
. - Added new
applyImageFilters
andapplyImageFiltersOnPage
APIs that accept an array of parametric filters as input and apply them to an image or page, respectively. - The result of the document scanner RTU screen has metadata that shows the current state of the flash, multiPage, and autoSnapping settings during scanning.
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Import
- 🚀 Improvements:
- The Barcode Scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- The Health Insurance Card Recognizer now implements the new Scanbot OCR engine. The recognition is faster and more accurate than before.
- 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.
- iOS: Improved the installation of custom OCR languages for the Tesseract OCR engine.
- iOS: Improved speed and image quality of still image capturing.
- iOS: Added support of haptic feedback on capable devices.
- Android: Optimized speed of the camera preview frames handling for all scanners.
- Android: Optimized memory consumption for PDF rendering with encryption enabled.
- Android: Text detection is faster and more accurate.
- Android: Improved MRZ parser for a stronger rejection of outliers.
- Android: Improved speed and quality of scanning for GenericDocumentRecognizer.
- Android: Changed touch to focus square in the native camera view to a circle.
- Android:
writeTiff
API method can be used with encryption.
- 🐞 Bug fixes:
- Android: For BarcodeFormat.PDF_417, a single case to generate clusters was not covered, which led to a crash.
- Android: Fixed an issue with misaligned barcode polygons on some devices with horizontal orientation.
- Android: Fixed null pointer exception for PageFileStorage operations.
- Android: BarcodeExtensionsFilter now accepts EAN and UPC barcodes with extensions only and all other formats without extensions.
- Android: Fixed
recognizeMRZ
API crash on some devices due to incorrect image loading.
- ⚠️ Breaking changes:
- startBarcodeScanner, closeBarcodeScanner, startBatchBarcodeScanner, closeBatchBarcodeScanner have been deprecated. Please see RTU-UI version 2 for Barcode scanning.
- Removed getFilteredDocumentPreviewUri and associated types. Please utilize applyImageFiltersOnPage.
- Removed detectBarcodesOnImages and associated types. Please utilize detectBarcodesOnImage.
- Removed literal
FAIL
fromCheckStatus
. All failed check recognitions are now being rejected. - Removed literals
CCITTFAX3
andCCITTFAX4
fromTIFFCompression
. UseCCITT_T4
andCCITT_T6
respectively. - Replaced
GenericDocumentWrapper
with the improvedGenericDocument
. - Changed
formattedResult
type to aGenericDocument
inBarcodeResultField
. Removed the previous barcode document interfaces (AAMVADocumentFormat, BoardingPassDocumentFormat, GS1DocumentFormat, IDCardPDF417DocumentFormat, MedicalCertificateDocumentFormat, MedicalPlanDocumentFormat, SEPADocumentFormat, SwissQRCodeDocumentFormat, VCardDocumentFormat), and replaced them with the improved and more capable wrapper classes (AAMVA, BoardingPass, GS1, IDCardPDF417, MedicalCertificate, DEMedicalPlan, SEPA, SwissQR, VCard). - Changed
check
type to aGenericDocument
inCheckRecognizerResult
. Removed the previous check document interfaces (USACheckDocument, FRACheckDocument, KWTCheckDocument, AUSCheckDocument, INDCheckDocument, ISRCheckDocument, UnknownCheckDocument), and replaced them with the improved and more capable wrapper classes (USACheck, FRACheck, KWTCheck, AUSCheck, INDCheck, ISRCheck, UnknownCheck). - Changed
mrz
type to aGenericDocument
inRecognizeMRZResult
. Removed the previous mrz document interface (MRZDocument) and replaced it with the improved and more capable wrapper class (MRZ). - Changed
documents
type to aGenericDocument[]
inGenericDocumentRecognizerResult
. Removed the previous generic document interfaces (MRZDocument, DeIdCardFrontDocument, DeIdCardBackDocument, DePassportDocument, DeDriverLicenseFrontDocument, DeDriverLicenseBackDocument), and replaced them with the improved and more capable wrapper classes (MRZ, DeIdCardFront, DeIdCardBack, DePassport, DeDriverLicenseFront, DeDriverLicenseBack). - Changed
acceptedCheckStandards
property type toCheckDocumentModelRootType
in recognizeCheck. - Replaced literals
RSS_14
andRSS_EXPANDED
withDATABAR
andDATABAR_EXPANDED
inBarcodeFormat
. - Replaced property
oneBitEncoded
withbinarizationFilter
inWriteTIFFArguments
. - Renamed property
pageOrientation
topageDirection
inCreatePDFArguments
. - Renamed type
MRZDocumentType
toMRZDocumentTypes
,PDFPageSize
toPageSize
,PDFPageOrientation
toPageDirection
. - Removed type
RemovePageResult
. removePage now returns status only. - Removed type
CheckRecognizerScreenResult
. - Removed applyImageFilter and applyImageFilterOnPage. The new applyImageFilters and applyImageFiltersOnPage accept parametric filter array.
- The following properties are now required:
page
inCroppingResult
documentImageFileUri
andpolygon
inDetectDocumentResult
result
inTextDataScannerResult
- all properties of
LicensePlateScannerResult
- all properties of
VinScannerResult
- Reworked performOCR parameters and result. See
PerformOCRResult
andPerformOCRArguments
. - ZoomRange can be created with any input values but will be limited under the hood by internal MIN_ZOOM (x0.2) and MAX_ZOOM (x100) values.
BarcodeFormat.CODE_25
is no longer being scanned with the default configuration and needs to be included explicitly in the barcode formats array for all barcode scanners.- iOS: Important: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
- 🚙 Under the hood:
- Upgraded the native Scanbot Android SDK to v5.1.3.
- Upgraded the native Scanbot iOS SDK to v5.1.4.
- Added 3rd-party library libzueci version 1.0.0.
- Updated 3rd-party libraries: libjpeg-turbo to 2.1.5.1, libpng to 1.6.40 and libtiff to 4.6.0.
- iOS: Refactored all public SDK code to Swift.
- iOS: Updated 3rd-party library zlib to version 1.3.1.
- Android: Added 3rd-party library zlib.
- Android: Added Theme.AppCompat.NoActionBar theme as default for Barcode Scanner RTU UI v2 activity.
- Android: Fixed pro-guard rules for DocumentQualityAnalyzer.
- Android: Added more rules for R8 shrinker to work adequately with AGP >= 8.
- Android: Added an R8 consumer rule to keep the internals of io.scanbot.core.processor.ImageProcessor from shrinking/obfuscating.
- Android: Added Consumer Proguard rules for RTU UI v2 modules.
Version 4.3.0 (2 May 2024)
- 🎉 New:
- Added
textDataValueFilter
property toTextDataScannerConfiguration
that accepts regex strings. Default is undefined (no filter applied).
- Added
- 🐞 Bug fixes:
- Fixed
gs1HandlingMode
property fordetectBarcodesOnImage
anddetectBarcodesOnImages
.
- Fixed
- ⚠️ Breaking Changes:
- Updated to Capacitor version 6
Version 4.2.0 (11 Apr 2024)
- 🎉 New:
- Introduced VIN Scanner RTU UI (see startVinScanner).
- Introduced Document Quality Analyzer. It analyzes the text quality (legibility) on images.
- Added new Barcode Types:
MICRO_QR_CODE
,INDUSTRIAL_2_OF_5
,USPS_INTELLIGENT_MAIL
,ROYAL_MAIL
,JAPAN_POST
,ROYAL_TNT_POST
,AUSTRALIA_POST
,DATABAR_LIMITED
,GS1_COMPOSITE
. - Added support for Kuwait ID cards in the MRZ scanner.
- Added support for the Israeli Check standard.
- New generation of Text Data Scanner RTU UI. The quality and speed of scanning has significantly improved. Changed the default OCR engine to the new
Scanbot_OCR
engine. With the new ML-based OCR engine the speed of text recognition has increased twofold. The new OCR engine currently supports all languages with latin letters, there is no need to specify the languages for it. - Tesseract language traindata is no longer needed by default. Tesseract engine mode can still be used with customization of OCR config.
- Added a type literal,
BACK_WIDEST
forCameraModule
(iOS only). - Added a type literal,
CREW_MEMBER_CERTIFICATE
forMRZDocumentType
. - Added new type literals for
PDFPageSize
. - Added new types:
FinderDocumentScannerResult
that describes the result ofstartFinderDocumentScanner
BarcodeScannerResult
that describes the result ofstartBarcodeScanner
BatchBarcodeScannerResult
that describes the result ofstartBatchBarcodeScanner
TextDataRecognitionResult
that describes the result ofTextDataScannerResult
HealthInsuranceCardField
that describes the fields of theHealthInsuranceCardScannerResult
MedicalCertificateDatesInfo
,MedicalCertificateCheckboxesInfo
,MedicalCertificatePatientDataInfo
andMedicalCertificatePatientDataInfoField
to better describeMedicalCertificateRecognizerResult
PerformOCRArguments
to better describe the arguments forperformOcr
functionCreatePDFArguments
to better describe the arguments forcreatePDFResult
functionWriteTIFFArguments
to better describe the arguments forwriteTIFF
function
- Added new properties in the following configurations:
DocumentScannerConfiguration
:flashButtonHidden
,flashButtonTitle
,touchToFocusEnabled
andpreferredAspectRatios
FinderDocumentScannerConfiguration
:flashButtonHidden
andtouchToFocusEnabled
CroppingConfiguration
:topBarTitle
andtopBarTitleColor
BarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
:barcodesExtensionFilter
,flashButtonHidden
,flashButtonTitle
,touchToFocusEnabled
,viewFinderEnabled
,barcodeValueFilter
andconfirmationDialogConfiguration
MrzScannerConfiguration
,HealthInsuranceCardScannerConfiguration
,TextDataScannerConfiguration
,LicensePlateScannerConfiguration
,MedicalCertificateRecognizerConfiguration
,CheckRecognizerConfiguration
andGenericDocumentRecognizerConfiguration
:flashButtonHidden
,flashButtonTitle
andtouchToFocusEnabled
- Added support for inverted PDF-417 barcodes.
- MRZ support for td1 long document standard.
- Android: Added a new implementation of
extractImagesFromPdf
andextractPagesFromPdf
. - iOS: Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK.
- 🚀 Improvements:
- Improved accuracy and detection speed of
QR_CODE
,CODE_39
, andCODE_93
barcode types. - Improved the speed of barcode recognition for most barcode symbologies.
- Improved contour lines detection with ML Based detection.
acceptedCheckStandards
can now be set when callingrecognizeCheck
.- Android: Stripped down the Android dynamic symbol table in native libraries. As a result, the size of the native shared libraries has decreased.
- Android: Optimized the size of native libraries integrated into the Scanbot SDK.
- Android: Enhanced error handling behavior when deleting SDK pages.
- Android: Improved quality and speed of the Document Contour detector.
- Android: Decreased size of Document Contour detector ML model.
- iOS: Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) for
cameraZoomRange
in all RTU-UI configurations. - Android: Proguard rules needed for Scanbot SDK are embedded in the plugin. There is no need to manually specify them in your project.
- Improved accuracy and detection speed of
- 🐞 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.
- Android: Fixed potential memory leak in all RTU-UI screens.
- Android: Fixed some OOM crashes on low to midrange devices.
- Android: Fixed false positives for
CODE_39
andCODABAR
barcodes. - Android: Fixed colors not being applied to fields in
GenericDocumentRecognizerConfiguration
. - Android: Fixed crash in
TextDataScanner
on ARM v7 devices. - Android: Fixed bug with invisible back button on Document Scanner RTU UI screens when no Camera permission was granted.
- Android: Fixed the logic in
autoSnapProgressEnabled
andpolygonAutoSnapProgressEnabled
methods inFinderDocumentScannerConfiguration
andDocumentScannerConfiguration
respectively. - Android: Fixed
textDataScannerStep
not applying inTextDataScannerConfiguration
. - Android: Fixed behavior of
ocrResolutionLimit
inTextDataScannerConfiguration
. - Android: Corrected mapping of
userGuidanceStrings
inCheckRecognizerConfiguration
. - Android: Fixed
enableCameraButtonTitle
andenableCameraExplanationText
parameters onBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. - iOS: Fixed issues with
performOCR
functionality. - iOS: Fixed storage path issue for some of the operations when setting custom storage.
- iOS: Fixed a crash when denying camera permission.
- iOS: Fixed a bug with magnetic lines in CroppingScreen RTU UI.
- iOS: Fixed a bug where the polygon should be mirrored when using the front camera in
DocumentScannerResult
. - iOS: Fixed a bug where
automaticSelectionEnabled
was not working properly inBarcodeScannerConfiguration
. - iOS: Fixed a bug where
flashEnabled
was not working properly inHealthInsuranceCardScannerConfiguration
. - iOS: Fixed a bug where
ocrResolutionLimit
was not being used inTextDataScannerConfiguration
. - iOS: Fixed a bug with the iPad 5th generation where captured images were wrong.
- iOS: Fixed a bug where the finder text hint was still showing when
viewFinderEnabled
was disabled inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. - iOS: Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
- ⚠️ Breaking Changes:
- iOS: Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0!
status
property is included inResultWrapper
interface and extracted from all resulting interfaces.- All file outputs are now represented as encoded URI strings.
- Removed deprecated functions
getStoredPageIds
,getPageImageUris
andgetPageById
. ImageFilterType
type literals are changed. Replace the type literals in order to useapplyImageFilter
,applyImageFilterOnPage
,getFilteredDocumentPreviewUri
and allPage
functionalities.- MRZ Scanner and
recognizeMRZ
result breaking changes: field property in the result is removed and replaced withmrz
of typeMRZDocument
. All types associated with fields property have been removed. - Check Recognizer and
recognizeCheck
result breaking changes: field property in the result is removed and replaced withcheck
of typeCheckDocument
. All types associated with fields property have been removed. GenericDocumentRecognizer
result breaking changes: result is restructured to return an array containing the typesMRZDocument
,DeIdCardFrontDocument
,DeIdCardBackDocument
,DePassportDocument
,DeDriverLicenseFrontDocument
andDeDriverLicenseBackDocument
. Previous types and properties have been removed.- The
estimateBlur
functionality has been removed and replaced by the far superiordocumentQualityAnalyzer
. recognizeCheck
argument is redefined to be an object that containsimageFileUri
andacceptedCheckStandards
.imageUri
has been renamed toimageFileUri
insetDocumentImage
function argument object.- The property
enableGS1Decoding
has been replaced bygs1HandlingMode
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. GS1 codes are now handled differently for various barcode types. Using the default optionPARSE
will give the same result as before for all barcode types, except ofRSS_EXPANDED
. Previously, forRSS_EXPANDED
, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, it is needed to choose the optionDECODE
. - Property
supportedLanguages
has been removed fromHealthInsuranceCardScannerConfiguration
. - Property
barcodeImageGenerationType
has been removed fromBarcodeScannerConfiguration
. - Properties
rawText
andisValidationSuccessful
removed fromLicensePlateScannerResult
. - Property
textFilterStrategy
has been removed fromTextDataScannerStep
. - Property
subfiles
inAAMVADocumentFormat
now returns an array ofAAMVADocumentSubfile
. - Removed type literal
TRAVEL_DOCUMENT
fromMRZDocumentType
. - Type literals for types
CapturePhotoQualityPrioritization
,LicensePlateScanStrategy
,MSIPlesseyChecksumAlgorithm
,GenericDocumentType
andFieldDisplayState
have been modified. - Type
FinderAspectRatio
is renamed toAspectRatio
. - Type
InitializationOptions
is renamed toScanbotSdkConfiguration
. - Type
CameraImageFormat
is renamed toStorageImageFormat
.
- 🚙 Under the hood:
- Upgraded the native Scanbot Android SDK and Scanbot iOS SDK to v4.2.0
- Added "libharu" library to dependencies.
- Android: Blackview and Caterpillar brands are now excluded from GpuAcceleration-supported devices.
- Android: Removed "Android PDF Writer" library from dependencies.
- Android: Upgraded OpenCV version to 4.8
- Android: Added "icu4c" library to dependencies.
- Android: Updated version of Nameof C++ library to v0.10.3
- Android: Disabled GPU acceleration for Redmi 9 models, Samsung Galaxy Grand Prime and devices with Android older than 6.
Version 2.2.4 (2 Jan 2024)
- 🎉 New:
- Added new functions:
extractImagesFromPdf
andextractPagesFromPdf
.
- Added new functions:
- 🐞 Bug fixes:
- Fixed
getOCRConfigs
function. - Android: Fixed wrong default value for
storageImageQuality
input parameter when callinginitializeSDK
.
- Fixed
Version 2.2.3 (31 Oct 2023)
- 🐞 Bug fixes:
- Fixed scanners not resolving promises on user manual cancel.
- Fixed SDK function:
performOCR
. - Fixed options being ignored when calling SDK function:
writeTiff
. - Fixed parsing of custom storage path for file URIs on iOS .
- 🚀 Improvements:
- Android: Reduced APK size by removing
io.scanbot:sdk-ml-imageprocessor-assets
dependency.
- Android: Reduced APK size by removing
- ⚠️ Breaking changes:
- IMPORTANT: From now on, Android Camera Permission will not be added automatically when installing the Scanbot SDK Capacitor Plugin. Please include
<uses-permission android:name="android.permission.CAMERA"/>
in your appAndroidManifest.xml
if you are using any of our camera functionalities. - Removed
ImageFilterTypeSensitiveBinarization
Image Filter Type. - Deprecated
InitializationOptions
. Please useScanbotSdkConfiguration
instead.
- IMPORTANT: From now on, Android Camera Permission will not be added automatically when installing the Scanbot SDK Capacitor Plugin. Please include
- 🚙 Under the hood:
- Prevented potential crashes by improving null safety.
Version 2.2.2 (5 Oct 2023)
- 🐞 Bug fixes:
- Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
- Fixed the
cleanup
SDK function. - Fixed the
estimateBlur
SDK function on iOS. - Fixed an issue during which
applyImageFilterOnPage
would fail for some specific image file URIs.
- 🚀 Improvements:
- The SDK function
getLicenseInfo
can now also be called even when the SDK initialization has failed.
- The SDK function
- ⚠️ Breaking changes:
- The SDK functions
getStoredPageIds
,getPageImageUris
, andgetPageById
have been deprecated.
- The SDK functions
Version 2.2.1 (28 Sep 2023)
- 🎉 New:
- Introduced Finder Document Scanner! It allows you to scan a single document page with the help of a viewfinder, bound to a certain aspect ratio.
- Added iOS-only parameters
topBarTitle
andtopBarTitleColor
inCroppingConfiguration
.
- 🚀 Improvements:
- Various minor improvements and fixes for page results
- Android Scanbot SDK Maven Repositories are now added automatically to the consuming app
- Reduced Android
minSdkVersion
from 24 to 22 - Exported
BaseSdkResult
TypeScript type
- ⚠️ Breaking changes:
- Refactored
ImageFilter
toImageFilterType
. The enum values have changed - please check the new accepted values in theImageFilterType
type definition
- Refactored
Version 2.2.0 (10 Aug 2023)
- 🎉 First release of the
capacitor-plugin-scanbot-sdk
Capacitor Scanbot Document Scanner SDK! - Provides Ready-To-Use UI Components - a set of easy to integrate and customize high-level Capacitor components for the most common tasks in Scanbot SDK:
- Document Scanner
- Cropping UI & Image Filters
- Barcode & QR code Scanner
- MRZ Scanner
- Generic Document Recognizer
- EHIC Scanner
- Check Recognizer
- License Plate Scanner
- Provides additional SDK features based on image picked from the device photos application:
- Detect Barcodes on Image
- Detect Document on Image
- PDF and TIFF Operations
- AES128 and AES256 Encryption
- New unified Scanbot SDK API:
- Idiomatic asynchronous design
- Capacitor-based unified API for Android & iOS
- Example App demonstrating the new functionalities: Capacitor Angular Example App
- Uses our Native Scanbot Document Scanner SDKs under the hood:
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get your free Trial LicenseWhat do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.