document_scanner 0.1.1 copy "document_scanner: ^0.1.1" to clipboard
document_scanner: ^0.1.1 copied to clipboard

outdated

A plugin that creates a native platform view that scans documents, as a flutter widget.

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';

import 'package:document_scanner/document_scanner.dart';
import 'package:flutter/scheduler.dart';
import 'package:permission_handler/permission_handler.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  File scannedDocument;

  bool isCameraPermissionAccepted;

  @override
  void initState() {
    checkCameraPermission();
    // ScannedImage.fromJson(
    //     '{rectangleCoordinates: {bottomLeft: {x: 133.0, y: 718.0}, bottomRight: {x: 439.0, y: 699.0}, topLeft: {x: 95.0, y: 106.0}, topRight: {x: 407.0, y: 93.0}}, croppedImage: file:///data/user/0/com.example.document_scanner_example/cache/documents/aad9bed5-68ea-4bb9-a7a2-13c57b38949f.jpg, width: 500, initialImage: file:///data/user/0/com.example.document_scanner_example/cache/documents/919a73f2-2590-4148-b0c7-212dcfffaf94.jpg, height: 888}');
    super.initState();
  }

  checkCameraPermission() async {
    PermissionStatus cameraPermission = await Permission.camera.request();

    isCameraPermissionAccepted = cameraPermission.isGranted;

    SchedulerBinding.instance.addPostFrameCallback((timeStamp) {
      setState(() {});
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: isCameraPermissionAccepted == null
            ? Center(
                child: CircularProgressIndicator(),
              )
            : isCameraPermissionAccepted
                ? Stack(
                    children: <Widget>[
                      Column(
                        children: <Widget>[
                          Expanded(
                            child: scannedDocument != null
                                ? Image(
                                    image: FileImage(scannedDocument),
                                  )
                                : DocumentScanner(
                                    onDocumentScanned:
                                        (ScannedImage scannedImage) {
                                      print("document : " +
                                          scannedImage.croppedImage);

                                      setState(() {
                                        scannedDocument = scannedImage
                                            .getScannedDocumentAsFile();
                                        // imageLocation = image;
                                      });
                                    },
                                  ),
                          ),
                        ],
                      ),
                      scannedDocument != null
                          ? Positioned(
                              bottom: 20,
                              left: 0,
                              right: 0,
                              child: RaisedButton(
                                  child: Text("retry"),
                                  onPressed: () {
                                    setState(() {
                                      scannedDocument = null;
                                    });
                                  }),
                            )
                          : Container(),
                    ],
                  )
                : Center(
                    child: Text("camera permission denied"),
                  ),
      ),
    );
  }
}
82
likes
0
pub points
75%
popularity

Publisher

verified publishereliasteeny.com

A plugin that creates a native platform view that scans documents, as a flutter widget.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, flutter_plugin_android_lifecycle

More

Packages that depend on document_scanner