doc_scan_flutter 1.0.5 copy "doc_scan_flutter: ^1.0.5" to clipboard
doc_scan_flutter: ^1.0.5 copied to clipboard

A Flutter plugin for scanning documents with automatic edge detection, cropping, and enhancement. Uses ML Kit on Android and VisionKit on iOS for high-quality scans.

example/lib/main.dart

import 'package:doc_scan_flutter/doc_scan.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: DocScanPage(),
    );
  }
}

class DocScanPage extends StatefulWidget {
  const DocScanPage({super.key});

  @override
  State<DocScanPage> createState() => _DocScanPageState();
}

class _DocScanPageState extends State<DocScanPage> {
  DocScanFormat _format = DocScanFormat.jpeg;
  List<String>? _scannedFiles;
  String? _errorMessage;

  Future<void> _scanDocument() async {
    try {
      setState(() {
        _scannedFiles = null;
        _errorMessage = null;
      });

      final result = await DocScan.scan(format: _format);
      setState(() => _scannedFiles = result);
    } on DocumentScannerException catch (e) {
      setState(() => _errorMessage = e.message);
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Doc Scan')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            const Text("Scan a document with custom options:"),
            const SizedBox(height: 20),

            // Format Selection
            DropdownButton<DocScanFormat>(
              value: _format,
              onChanged: (value) => setState(() => _format = value!),
              items: const [
                DropdownMenuItem(
                  value: DocScanFormat.jpeg,
                  child: Text("JPEG"),
                ),
                DropdownMenuItem(value: DocScanFormat.pdf, child: Text("PDF")),
              ],
            ),

            const SizedBox(height: 20),
            ElevatedButton(
              onPressed: _scanDocument,
              child: const Text("Scan Document"),
            ),
            const SizedBox(height: 20),

            if (_errorMessage != null)
              Text(
                "Error: $_errorMessage",
                style: const TextStyle(color: Colors.red),
              ),
            if (_scannedFiles != null)
              ..._scannedFiles!.map((path) => Text(path)),
          ],
        ),
      ),
    );
  }
}
8
likes
160
points
269
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for scanning documents with automatic edge detection, cropping, and enhancement. Uses ML Kit on Android and VisionKit on iOS for high-quality scans.

Homepage
Repository (GitHub)
View/report issues

Topics

#document-scanner #pdf-scanner #flutter-plugin #visionkit #mlkit

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on doc_scan_flutter

Packages that implement doc_scan_flutter