MLKit Document Scanner

Flutter plugin bringing MLKit Document Scanner to Flutter.

Important notice: MLKit Document Scanner itself is in beta, and it's only available on Android. This package is also in early stages of development, so many things can change. Will do my best to document these potential changes in CHANGELOG.

Usage

First, change the MainActivity to extends FlutterFragmentActivity:

import io.flutter.embedding.android.FlutterFragmentActivity

class MainActivity: FlutterFragmentActivity()

Optionally, you can add the following two meta-data tags in your AndroidManifest.xml (above activity, inside application):

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

<meta-data
    android:name="com.google.mlkit.vision.DEPENDENCIES"
    android:value="document_ui"/>

First metadata tag embeds the version of Google Play services that the app was compiled with, and the second one configures the app to automatically download the model to the device after installation.

To use the plugin, first create an instance of MlkitDocumentScannerPlugin...

final _mlkitDocumentScannerPlugin = MlkitDocumentScannerPlugin();

...and to launch the document scanner activity, call startDocumentScanner method (all four arguments are required):

_mlkitDocumentScannerPlugin.startDocumentScanner(
    maximumNumberOfPages: 1,
    galleryImportAllowed: true,
    scannerMode: MlkitDocumentScannerMode.full,
    resultMode: DocumentScannerResultMode.both,
);

This plugin attempts to follow the API of the MLKit Document Scanner as close as possible. For more information on what each parameter in startDocumentScanner does, please refer to our documentation.

Depending on the resultMode set, you have two streams that can receive scan data:

// Stream<List<Uint8List>?>
_mlkitDocumentScannerPlugin.jpegScanResults;

// Stream<Uint8List?>
_mlkitDocumentScannerPlugin.pdfScanResults;

Contribution

As mentioned above, plugin is under active development, and any kind of help is welcome. Feel free to create a new issue on GitHub if you encounter any problems.

Libraries

mlkit_document_scanner
Flutter plugin bringing MLKit Document Scanner to Flutter.
mlkit_document_scanner_enums
mlkit_document_scanner_interface
mlkit_document_scanner_plugin