Changelog | MAUI Document Scanner SDK
MAUI - Version 4.2.1 (6 May 2024)
- 🎉 New:
- Added
PDFConfiguration
class which allows the user to setPDFSize
,PDFOrientation
,PDFAttributes
for creating a PDF document. Please checkScanbotSDK.MAUI.SDKService.CreatePdfAsync(...)
. ThePDFAttributes
class allows the user to set the PDF metadata. - Added a new property
ScanbotOCR
and methodTesseract(...)
inOcrConfig
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.
- Added
- 🐞 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(...)
- Creating a PDF document, See
- iOS: Fixed a bug in
- ⚠️ Breaking changes:
- The
OCRMode
enum typesML
andLegacy
are renamed withScanbotOCR
andTesseract
respectively. - Replaced
ScanbotSDK.MAUI.SDKService.CreatePdfAsync(IEnumerable<FileImageSource> files, PDFPageSize pageSize, PDFPageOrientation pdfPageOrientation, OcrConfig configuration)
withScanbotSDK.MAUI.SDKService.CreatePdfAsync(IEnumerable<FileImageSource> files, PDFConfiguration configuration)
.
- The
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 inIScanbotService.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
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. - Added
ExtensionFilter
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. AddedExtension
property inBarcode
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 andSBSDKPDFMetadataProcessor
for iOS. - Added support for portrait, landscape and auto page orientation. Check
IO.Scanbot.Pdf.Model.PageDirection
in Android andSBSDKPDFRendererPageOrientation
for iOS. - Extended list of supported page sizes (A3, A5, B4, B5, etc.). Check
IO.Scanbot.Pdf.Model.PageSize
for Android andSBSDKPDFRendererPageSize
for iOS.
- Added support for custom PDF metadata. Check
- New PDF renderer for simple PDF and "sandwiched" PDF generation.
- Added new RTU UI components:
- 🚀 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 asLegacy
in theOcrConfig
class. BatchBarcodeScannerConfiguration
now supports theBarcodeFormats
property for filtering barcodes.- Improved accuracy and detection speed of
QrCode
,Code39
, andCode93
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 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.
IScanbotSDKService.WriteTiffAsync
,IScanbotSDKService.PerformOcrAsync
andIScanbotSDKService.CreatePdfAsync
all receiveIEnumerable<FileImageSource>
instead ofIEnumerable<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
andCODABAR
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
andPolygonAutoSnapProgressEnabled
methods inFinderDocumentScannerConfiguration
andDocumentScannerConfiguration
. - Corrected mapping of
UserGuidanceStrings
inCheckRecognizerConfiguration
. - Fixed the
TopBarButtonsColor
option for theMrzScannerConfiguration
andHealthInsuranceCardScannerConfiguration
. - Fixed
EnableCameraButtonTitle
andEnableCameraExplanationText
parameters onBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
.
- 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 inBarcodeScannerConfiguration
. - Fixed a bug where
FlashEnabled
was not working properly inHealthInsuranceCardScannerConfiguration
. - 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 inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. - Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
- Fixed a bug in
SBSDKOpticalCharacterRecognizer
whereRecognizeText
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 toUIColor.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 forBarcodeFormat.RssExpanded
. Previously, forRssExpanded
, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, use the optionGS1Handling.Decode
. IScannedPageService
renamed toIScannedPage
.- Major updates in
IScanbotSDKService
:- Replaced
EstimateBlurriness
withDetectDocumentQualityAsync
. - Replaced
OcrConfigs
withDefaultOcrConfig
which provides the default OCR configs from the native platforms. - Replaced
public LicenseInfo GetLicenseInfo()
withpublic LicenseInfo LicenseInfo { get; }
. - Updated return value of
ApplyImageFilterAsync
fromTask<ImageSource>
toTask<FileImageSource>
. - Replaced
CreatePdfAsync(List<ImageSource> images, PDFPageSize pageSize)
withCreatePdfAsync(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)
withTask<OcrResult> PerformOcrAsync(IEnumerable<FileImageSource> sources, OcrConfig configuration = null, string pdfOutputPath = null)
- Replaced
WriteTiffAsync(IEnumerable<ImageSource> images, TiffOptions options = null)
withWriteTiffAsync(IEnumerable<FileImageSource> files, TiffOptions options = null)
.
- Replaced
- Replaced property
Gs1DecodingEnabled
of typebool
withGs1HandlingMode
of typeGS1Handling
enum inBarcodeScannerAdditionalParameters
. - The
DocumentSDK.MAUI.iOS
andDocumentSDK.MAUI.Droid
assemblies merged into one assembly namedDocumentSDK.MAUI
. - All types under the
DocumentSDK
andBarcodeSDK
namespaces have been moved to theScanbotSDK
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()
andToMaui()
. 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.
- GS1 codes are now handled differently for various barcode types. Using the default option
- 🚙 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
toSBSDKDeviceInformation
.
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.
- More supported barcode types:
- 🚀 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 theFinderWidthRelativeToDeviceWidth
orFinderHeightRelativeToDeviceWidth
properties inDocumentSDK.MAUI.MrzScannerConfiguration
. DocumentSDK.MAUI.ScanbotSDK.LicenseInfo
now returns the correct license status.
- Fixed
- ⚠️ Breaking changes:
- For the
DocumentSDK.MAUI.Constants.MedicalCertificateCheckboxType
enum, changedRequiresCareYes
toCareYes
. - Renamed the
BarcodeSDK.MAUI.Constants.OverlayFormat
enum toBarcodeSDK.MAUI.Constants.BarcodeTextFormat
.- Any types which use the enum have also been updated, such as
BarcodeSDK.MAUI.Configurations.SelectionOverlayConfiguration
.
- Any types which use the enum have also been updated, such as
- If using named parameters for
BarcodeSDK.MAUI.Configurations.SelectionOverlayConfiguration
, the misspelledautomaticSelectionEnaled
parameter has been renamed toautomaticSelectionEnabled
.
- For the
- 🚙 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?
What can we do to improve it? Please be as detailed as you like.