If you are here, that means you must have seen my PR from the Google MLKit Flutter package, which was merged recently. If you have not, you can check it out hereĀ
Google ML Kit for Flutter
TheĀ
So, letās talk about the new pluginĀ
Digitizing physical documents, which allows users to convert physical documents into digital formats, has become a very common user journey in mobile apps. The Document Scanner provides a solution with high-quality, orderly UI flow across Android Apps. You can apply filters, remove stains and shadows, and crop documents.
Read moreĀ
Some of the key capabilities are:
- High-quality and consistent user interface for digitizing physical documents.
- Automatic capture with document detection.
- No camera permission is needed from your app.
Note: Document Scanner is not yet support for iOS and is currently on Beta mode
Using the package on your flutter app is much easy as you think. you just have to add the plugin yo your pubspec.yaml as followed:
dependencies:
google_mlkit_document_scanner: ^0.2.0
Or you can run this command on your terminal to add the package
flutter pub add google_mlkit_document_scanner
We cannot go ahead with using the package in our app.
Create an instance of the DocumentOption class.
DocumentScannerOptions options = DocumentScannerOptions(
mode: ScannerMode.filter, // to control the feature sets in the flow
isGalleryImport: false, // importing from the photo gallery
pageLimit: 1, // setting a limit to the number of pages scanned
);
-
ModeĀ is to change the scanner mode, which can beĀ ScannerMode*.full,Ā ScannerMode.filterĀ orĀ ScannerMode.base*
-
IsGalleryImportĀ if you want to allow gallery import set to true
-
pageLimitĀ to set the number of pages scanned
-
DocumentFormatĀ to be retrieved after the scanned, which can be inĀ **jpeg or pdf
Create an instance of the DocumentScanner class and pass the options.
DocumentScanner documentScanner = DocumentScanner(
options: options
);
Create a List to store the path of the scanned documents.
List<String>? documents;
Donāt forget to dispose.
@override
void dispose() {
documentScanner.close();
super.dispose();
}
To start the scan, all you have to do is call theĀ scanDocumentĀ method like so.
documents = await documentScanner.scanDocument();
Easy-peasy, now theĀ documentsĀ list contains the paths to the document scanned.
You can get all code sources from below
If you have any questions or issues, please add them to the comment section.
Iām open to discussing any Flutter project opportunities, big or small. Also, feel free to follow me on Twitter @bensonarafat for updates and stay connected.
Adios! š