advanced_document_scanner 0.0.1 copy "advanced_document_scanner: ^0.0.1" to clipboard
advanced_document_scanner: ^0.0.1 copied to clipboard

Camera-based advanced document scanner with built-in editor (highlight, crop, rotate) and export presets (low/medium/high/max) for JPG/PNG/GIF.

📄 advanced_document_scanner #

Camera-based document scanner for Flutter with a built-in editor (highlight, crop/cut, rotate) and advanced export options (JPG/PNG/GIF + low/medium/high/max presets).

Platforms: ✅ Android | ✅ iOS


✨ Features #

📷 Scan #

  • Uses the camera plugin
  • Captures at maximum supported resolution (best source)
  • Multi-page capture

🤖 Native document scanner (optional) #

  • Android: Google ML Kit Document Scanner (Play services)
    • Uses dependency com.google.android.gms:play-services-mlkit-document-scanner:16.0.0
  • iOS: VisionKit document scanner (VNDocumentCameraViewController)
  • Returns page images and (when available) a generated PDF

✍️ Edit #

  • Highlight (marker)
  • Crop / Cut
  • Rotate

📤 Export #

  • Formats: JPG / PNG / GIF
  • Presets: low / medium / high / max
  • Optional overrides: targetWidth, targetHeight, jpgQuality

🚀 Installation #

dependencies:
  advanced_document_scanner: ^0.0.1

🔐 Permissions #

Android #

Add in android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.CAMERA"/>

iOS #

Add in ios/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>We need camera access to scan documents.</string>

✅ Usage #

1) Capture + Edit #

final scanner = AdvancedDocumentScanner();

final result = await scanner.captureAndEdit(
  pageLimit: 10,
  multiPage: true,
);

final source = (result.editedImagePaths?.isNotEmpty ?? false)
    ? result.editedImagePaths!
    : result.originalImagePaths;

2) Scan + Edit (ML Kit Android / VisionKit iOS) #

final scanner = AdvancedDocumentScanner();

final result = await scanner.scanWithMlKit(
  pageLimit: 10,
  allowGallery: true,
  returnJpeg: true,
  returnPdf: true,
  openEditorAfterScan: true,
);

// Optional:
final pdfPath = result.pdfPath;

📤 Export (ALL options) #

A) Export with preset (low / medium / high / max) #

final outputDir = await scanner.getDefaultExportDir(
  folderName: 'advanced_document_scanner_exports',
);

final files = await scanner.exportImages(
  imagePaths: source,
  outputDir: outputDir,
  options: const AdsExportOptions(
    format: AdsImageFormat.jpg,
    preset: AdsQualityPreset.high,
  ),
);

B) Export as PNG (lossless) #

final pngFiles = await scanner.exportImages(
  imagePaths: source,
  outputDir: outputDir,
  options: const AdsExportOptions(
    format: AdsImageFormat.png,
    preset: AdsQualityPreset.high,
  ),
);

C) Export as GIF (single-frame) #

final gifFiles = await scanner.exportImages(
  imagePaths: source,
  outputDir: outputDir,
  options: const AdsExportOptions(
    format: AdsImageFormat.gif,
    preset: AdsQualityPreset.medium,
  ),
);

D) Custom width/height override #

final customSize = await scanner.exportImages(
  imagePaths: source,
  outputDir: outputDir,
  options: const AdsExportOptions(
    format: AdsImageFormat.jpg,
    preset: AdsQualityPreset.high,
    targetWidth: 1600,
    targetHeight: 2200,
  ),
);

E) Override JPG quality (0–100) #

final customQuality = await scanner.exportImages(
  imagePaths: source,
  outputDir: outputDir,
  options: const AdsExportOptions(
    format: AdsImageFormat.jpg,
    preset: AdsQualityPreset.high,
    jpgQuality: 85,
  ),
);

🧩 Open editor for existing images #

final editedPaths = await scanner.openEditor(
  imagePaths: source,
  enableHighlight: true,
  enableCrop: true,
  enableCut: true,
  enableRotate: true,
);

☕ Sponsor a cup of tea #

If this package saves your time, consider supporting development ❤️


📄 License #

MIT

2
likes
150
points
86
downloads

Publisher

verified publishernh97.co.in

Weekly Downloads

Camera-based advanced document scanner with built-in editor (highlight, crop, rotate) and export presets (low/medium/high/max) for JPG/PNG/GIF.

Repository (GitHub)
View/report issues

Topics

#document-scanner #scanner #mlkit

Documentation

API reference

License

MIT (license)

Dependencies

camera, collection, flutter, image, path, path_provider

More

Packages that depend on advanced_document_scanner

Packages that implement advanced_document_scanner