如何在颤振中生成条形码?
Posted
技术标签:
【中文标题】如何在颤振中生成条形码?【英文标题】:How to generate barcode in flutter? 【发布时间】:2018-12-01 18:20:59 【问题描述】:我想在 Flutter 中生成条形码,但我只找到了像 barcode_scan 这样的条形码扫描仪包,但我想要类似 zxing 库(android 原生)之类的东西,它还可以生成多种格式的条形码,如 EAN、Code128 等。虽然我的要求是 EAN。
【问题讨论】:
您要生成哪种条码,例如: PDF 417 符号? 我想生成 EAN 13 格式 【参考方案1】:使用Syncfusion Flutter Barcode 生成器,它是一个数据可视化小部件,用于以机器可读格式生成和显示数据。它提供了一种使用支持的符号系统类型对输入值进行编码的完美方法。
将 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';
初始化二维码符号
将条形码生成器小部件添加为任何小部件的子级。在这里,小部件被添加为容器小部件的子小部件,并指定容器的高度(否则它将占用整个容器高度)。
@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
属性,根据输入值将所需的符号系统类型设置为条形码生成器。在下面的代码sn-p中,二维码设置为条码符号。
@override
Widget build(BuildContext context)
return MaterialApp(
home: Scaffold(
body: Center(
child: Container(
height: 150,
child:SfBarcodeGenerator(value:'http://www.syncfusion.com')
)
)
)
);
【讨论】:
【参考方案2】:我已经实现了一个 Flutter 库,可以满足您的需求。
请在此处查看barcode_flutter 支持 EAN8 和 EAN13。
【讨论】:
【参考方案3】: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 包来为您的应用添加生成功能。
【讨论】:
是的,zxing 在barcode_scan 中使用是对的,但我没有在使用flutter 实现的库的kotlin 类中找到任何用于生成条形码的代码。只有条形码 scan() 方法。 我也不知道如何扩展barcode_scan 插件来支持生成条形码的API。请告诉我一条出路。 那是你必须自己实现的代码。也许包所有者有兴趣添加功能。这是有道理的,因为它没有那么多额外的代码。以上是关于如何在颤振中生成条形码?的主要内容,如果未能解决你的问题,请参考以下文章