在 Flutter App 中调用平板纸扫描仪
Posted
技术标签:
【中文标题】在 Flutter App 中调用平板纸扫描仪【英文标题】:invoke flatbed paper scanner in Flutter App 【发布时间】:2021-01-05 19:31:56 【问题描述】:我想在我的颤振应用程序中使用纸质扫描仪,所以我可以使用现代平板扫描仪一次扫描大量文档,如果有任何可靠的包和插件可以帮助我调用扫描仪(不是 CAM),请让我知道,我会感谢你的帮助...
【问题讨论】:
【参考方案1】:我认为这个 flutter_genius_scan 3.0.24 包对你有帮助。
所以首先在你的项目 pubspec.yaml 文件中添加这个 flutter_genius_scan 3.0.24 包:
(同时在你的项目 pubspec.yaml 文件中包含 open_file: ^3.0.1 包。)
就像:
dependencies:
flutter_genius_scan: ^3.0.24
open_file: ^3.0.1
然后创建新的 Dart 页面并命名为 Scanning_Page 并在其中添加以下代码。
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_genius_scan/flutter_genius_scan.dart';
import 'package:open_file/open_file.dart';
class Scanning_Page extends StatefulWidget
@override
_Scanning_PageState createState() => _Scanning_PageState();
class _Scanning_PageState extends State<Scanning_Page>
@override
Widget build(BuildContext context)
return Scaffold(
appBar: AppBar(
title: const Text('Scan Documents'),
),
body: Center(
child: RaisedButton.icon(
onPressed: ()
FlutterGeniusScan.scanWithConfiguration(
'source': 'camera',
'multiPage': true,
).then((result)
String pdfUrl = result['pdfUrl'];
OpenFile.open(pdfUrl.replaceAll("file://", '')).then(
(result) => debugPrint(result.toString()),
onError: (error) => displayError(context, error));
, onError: (error) => displayError(context, error));
,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0))),
label: Text('START SCANNING',
style: TextStyle(color: Colors.white),),
icon: Icon(Icons.scanner, color: Colors.white,),
textColor: Colors.white,
splashColor: Colors.red,
color: Colors.lightBlue,),
)
);
void displayError(BuildContext context, PlatformException error)
Scaffold.of(context).showSnackBar(SnackBar(content: Text(error.message)));
然后在您的 main.dart 文件中使用以下代码:
import 'package:flutter/material.dart';
import 'package:flutter_app/Scanning_Page.dart';
void main()
runApp(MyApp());
class MyApp extends StatelessWidget
@override
Widget build(BuildContext context)
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Scan Documents',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home:Scanning_Page(),
);
注意:您的 minSdkVersion 必须为 19 即 minSdkVersion 19 在 app -> build 中。 gradle 文件来支持这些包,如下所示:
defaultConfig
.........
.........
minSdkVersion 19
targetSdkVersion 28
........
........
【讨论】:
以上是关于在 Flutter App 中调用平板纸扫描仪的主要内容,如果未能解决你的问题,请参考以下文章