我正在搜索一个Flutter包,它可以找到.pdf文件的条形码



我正试图在Windows上构建一个应用程序,我选择了包含条形码的(.pdf(文件。我想找到并提取条形码信息,并将其放在列表中。我需要一个能让它实现的包裹。除了https://pub.dev/packages/flutter_barcode_sdk因为它每年都要支付执照费用。

我花了一些时间为您写这篇文章,并使用了两个不同的包。

这个可以从相机和文件中读取条形码scan: 1.6.0

但我无法让它读取PDF,所以我安装了另一个包来渲染PDF文件中的图像。native_pdf_renderer: 3.1.0

此软件包也是必需的:path_provider: ^2.0.11

这是对我来说很好的代码:

import 'dart:async';
import 'dart:io';
import 'package:native_pdf_renderer/native_pdf_renderer.dart';
import 'package:path_provider/path_provider.dart';
import 'package:scan/scan.dart';
Future<void> readBarcodeFromPDF(String assetPath) async {
PdfDocument pdf = await PdfDocument.openAsset(assetPath);
for (var pageIndex = 0; pageIndex < pdf.pagesCount; pageIndex++) {
final page = await pdf.getPage(pageIndex);
final image = await page.render(width: 2048, height: 2048); 
if (image != null) {
final byteData = image.bytes;
final file = File('${(await getTemporaryDirectory()).path}/barcodes');
await file.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
String? barcode = await Scan.parse(file.path);
if (barcode == null) {
print("barcode not found in page $pageIndex");
} else {
print("Barcode Found: $barcode in page $pageIndex");
}
}
}
}

最新更新