我想在颤振中生成条码,但我只找到了条码扫描仪包,如barcode_scan,但我想要类似zxing库(Android原生)之类的东西,它还可以生成多种格式的条码,如EAN、Code128等。虽然我的要求是EAN。
3 回答
我已经实现了一个 Flutter 库,可以满足您的需求。
请在此处查看barcode_flutter EAN8 和EAN13 均受支持。
barcode_scan为 Android 插件使用zxing库,因此您可以轻松地扩展该插件以支持用于生成条形码的 API。对于该插件的 iOS 版本,使用AVMetadataMachineReadableCodeObject代替 zxing,因为 xzing 的 iOS 端口已停止使用。Flutter 支持 iOS 8.0+,并且 iOS 8.0 引入了用于生成条形码的 API 作为Core Image API的一部分。支持的格式有:
- 方形二维码
- 阿兹台克代码符号
- PDF 417 符号
- 数据矩阵代码符号
如果您要在此列表中查找条形码,则很容易分叉barcode_scan 包以添加您的应用程序的生成功能。
使用Syncfusion Flutter Barcode Generator,它是一个数据可视化小部件,用于以机器可读格式生成和显示数据。它提供了一种使用支持的符号系统类型对输入值进行编码的完美方法。
将 Syncfusion Flutter Barcode 依赖项添加到您的 pubspec.yaml 文件中。
dependencies: syncfusion_flutter_barcodes: ^xx.x.xx. /// For now - syncfusion_flutter_barcodes: ^18.3.42
在您的 Dart 代码中导入以下包。
import 'package:syncfusion_flutter_barcodes/barcodes.dart';
初始化 QR 码符号系统
将条形码生成器小部件添加为任何小部件的子级。在这里,小部件被添加为容器小部件的子级,并指定了容器的高度(否则它将占用整个容器高度)。
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Container(
height: 200,
child: SfBarcodeGenerator(
value: 'www.syncfusion.com',
symbology: QRCode(),
showValue: true,
),
))),
);
}
以下屏幕截图说明了前面代码示例的结果。
初始化条码
symbology
您可以通过初始化属性,根据输入值将所需的符号系统类型设置为条码生成器。在以下代码片段中,QR 码设置为条形码符号。@override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: Container( height: 150, child:SfBarcodeGenerator(value:'http://www.syncfusion.com') ) ) ) ); }