Flutter条形码生成与识别插件aspose_barcode_cloud的使用

发布于 1周前 作者 wuwangju 来自 Flutter

Flutter条形码生成与识别插件aspose_barcode_cloud的使用

Aspose.BarCode Cloud SDK for Dart允许您在Dart或Flutter应用程序中快速轻松地使用Aspose.BarCode for Cloud REST API。本文将介绍如何在Flutter项目中使用aspose_barcode_cloud插件进行条形码的生成和识别。

前提条件

  1. 注册一个Aspose Cloud账户,并在Cloud Dashboard中查找或创建Client Secret和SID。
  2. 确保您的Dart版本为2.12.0或更高。

安装与使用

添加依赖

在您的pubspec.yaml文件中添加以下依赖:

dependencies:
  aspose_barcode_cloud: 1.24.12

示例代码

下面是一个完整的示例,展示如何生成一个QR码并保存到本地文件,然后对其进行识别。

import 'dart:io';
import 'dart:typed_data';

import 'package:aspose_barcode_cloud/aspose_barcode_cloud.dart';
import 'package:http/http.dart' show MultipartFile;

Future<void> main() async {
  const fileName = "qr.png";

  // 初始化API客户端
  final api = BarcodeApi(ApiClient(Configuration(
    clientId: "Your Client Id from https://dashboard.aspose.cloud/applications",
    clientSecret: "Your Client Secret from https://dashboard.aspose.cloud/applications",
    // For testing only
    accessToken: Platform.environment["TEST_CONFIGURATION_ACCESS_TOKEN"],
  )));

  // 生成带有文本"Hello, Aspose!"的QR码图像
  final Uint8List generated = await api.getBarcodeGenerate(
    EncodeBarcodeType.QR.toString(),
    "Hello, Aspose!",
    textLocation: CodeLocation.None.toString(),
  );

  // 将生成的图像保存到文件
  File(fileName).writeAsBytesSync(generated);
  print("Generated image saved to '$fileName'");

  // 从生成的图像中识别二维码
  final formFile = MultipartFile.fromBytes("image", generated.toList(), filename: "barcode.png");
  final BarcodeResponseList recognized = await api.scanBarcode(
    formFile,
    decodeTypes: [DecodeBarcodeType.QR],
  );

  if (recognized.barcodes != null && recognized.barcodes!.isNotEmpty) {
    print("Recognized Type: ${recognized.barcodes![0].type!}");
    print("Recognized Value: ${recognized.barcodes![0].barcodeValue!}");
  } else {
    print("No barcode found");
  }
}

详细说明

  1. 初始化API客户端:需要提供clientIdclientSecret,这些可以从Aspose Cloud Dashboard获取。
  2. 生成条形码:调用getBarcodeGenerate方法生成条形码图像。这里我们生成了一个QR码,内容为"Hello, Aspose!"。
  3. 保存图像:将生成的条形码图像保存为本地文件。
  4. 识别条形码:将生成的图像转换为MultipartFile,并通过scanBarcode方法识别条形码类型和内容。

参考资源

通过以上步骤,您可以在Flutter应用中集成条形码生成和识别功能。更多高级功能和配置可以参考官方文档。


这个Markdown格式的内容提供了详细的步骤和示例代码,帮助您在Flutter应用中使用`aspose_barcode_cloud`插件进行条形码生成和识别。

更多关于Flutter条形码生成与识别插件aspose_barcode_cloud的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter条形码生成与识别插件aspose_barcode_cloud的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter中使用aspose_barcode_cloud插件来生成和识别条形码的示例代码。需要注意的是,Aspose.Barcode Cloud 是一个基于云的API服务,所以你需要一个有效的Aspose Cloud SDK订阅和API密钥。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加aspose_barcode_cloud依赖。

dependencies:
  flutter:
    sdk: flutter
  aspose_barcode_cloud: ^最新版本号 # 请替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

2. 配置Aspose Cloud客户端

接下来,你需要在你的Flutter应用中配置Aspose Cloud客户端。你需要你的API密钥和客户端ID。

import 'package:aspose_barcode_cloud/aspose_barcode_cloud.dart';

class AsposeBarcodeClient {
  late Configuration configuration;
  late BarcodeApi barcodeApi;

  AsposeBarcodeClient({required String clientId, required String clientSecret}) {
    configuration = Configuration(
      appId: clientId,
      appKey: clientSecret,
      basePath: 'https://api.aspose.cloud/v3.0',
    );

    barcodeApi = BarcodeApi(configuration);
  }
}

3. 生成条形码

下面是一个生成条形码的示例代码:

import 'package:flutter/material.dart';
import 'package:aspose_barcode_cloud/aspose_barcode_cloud.dart';

void generateBarcode(AsposeBarcodeClient client) async {
  final request = GenerateBarcodeRequest(
    name: 'sample.png',
    text: '123456789012',
    type: 'Code128',
    format: 'png',
    folder: null,
    resolution: 300,
    resolutionX: null,
    resolutionY: null,
    barHeight: null,
    barWidth: null,
    codeLocation: null,
    codeLocationX: null,
    codeLocationY: null,
    generateChecksum: true,
    imageHeight: null,
    imageWidth: null,
    margin: null,
    marginBottom: null,
    marginLeft: null,
    marginRight: null,
    marginTop: null,
    rightAlignText: null,
    supplementData: null,
    supplementSpace: null,
    textAlignment: null,
    textLocation: null,
    textOrientation: null,
    threeDBarcodeRotationAngle: null,
    topMargin: null,
    unit: null,
    width: null,
    height: null,
    storage: null,
  );

  try {
    final result = await client.barcodeApi.generateBarcode(request);
    print('Barcode generated successfully: ${result.code}');
  } catch (e) {
    print('Error generating barcode: ${e.message}');
  }
}

4. 识别条形码

下面是一个识别条形码的示例代码:

void recognizeBarcode(AsposeBarcodeClient client, String fileName) async {
  final request = ReadBarcodeRequest(
    name: fileName,
    type: null, // 你可以指定条形码类型,例如 'Code128'
    folder: null,
    storage: null,
  );

  try {
    final result = await client.barcodeApi.readBarcode(request);
    for (var barcode in result.barcodes!) {
      print('Barcode Text: ${barcode.barcodeText}');
      print('Barcode Type: ${barcode.barcodeType}');
    }
  } catch (e) {
    print('Error recognizing barcode: ${e.message}');
  }
}

5. 使用示例

在你的Flutter应用的某个地方(例如点击按钮时)调用这些函数:

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Aspose Barcode Cloud Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: () async {
                  final client = AsposeBarcodeClient(
                    clientId: 'YOUR_CLIENT_ID',
                    clientSecret: 'YOUR_CLIENT_SECRET',
                  );

                  await generateBarcode(client);
                },
                child: Text('Generate Barcode'),
              ),
              ElevatedButton(
                onPressed: () async {
                  final client = AsposeBarcodeClient(
                    clientId: 'YOUR_CLIENT_ID',
                    clientSecret: 'YOUR_CLIENT_SECRET',
                  );

                  await recognizeBarcode(client, 'sample.png');
                },
                child: Text('Recognize Barcode'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

请确保将YOUR_CLIENT_IDYOUR_CLIENT_SECRET替换为你自己的Aspose Cloud SDK的API密钥和客户端ID。

这些代码展示了如何使用aspose_barcode_cloud插件在Flutter应用中生成和识别条形码。请根据你的实际需求调整代码。

回到顶部