Flutter身份证信息解析插件mrz_parser_esp的使用

Flutter身份证信息解析插件mrz_parser_esp的使用

mrz_parser_esp 是一个用于解析身份证信息(如护照)上的机器可读区(Machine Readable Zone, MRZ)的 Flutter 插件。该插件支持多种格式,包括 TD1、TD2、TD3、MRV-A 和 MRV-B。

支持的格式

  • TD1
  • TD2
  • TD3
  • MRV-A
  • MRV-B

使用方法

导入包

首先,在 pubspec.yaml 文件中添加依赖项:

dependencies:
    mrz_parser_esp: ^最新版本号

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

解析MRZ

解析 MRZ 的示例如下:

import 'package:mrz_parser_esp/mrz_parser_esp.dart';

void main() {
  final mrz = [
    'P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<',
    'L898902C36UTO7408122F1204159ZE184226B<<<<<10',
  ];

  // 尝试解析 MRZ
  final result = MRZParser.tryParse(mrz);

  // 输出解析结果
  print(result?.documentType); // 'P'
  print(result?.countryCode); // 'UTO'
  print(result?.surnames); // 'ERIKSSON'
  print(result?.givenNames); // 'ANNA MARIA'
  print(result?.documentNumber); // 'L898902C3'
  print(result?.nationalityCountryCode); // 'UTO'
  print(result?.birthDate); // DateTime(1974, 08, 12)
  print(result?.sex); // Sex.female
  print(result?.expiryDate); // DateTime(2012, 04, 15)
  print(result?.personalNumber); // 'ZE184226B'
  print(result?.personalNumber2); // null
}

异常处理

你也可以使用 MRZParser.parse 方法,并捕获可能出现的异常:

try {
  final result = MRZParser.parse(mrz);
} on MRZException catch(e) {
  print(e);
}

完整示例代码

以下是完整的示例代码,可以在项目中直接使用:

// ignore_for_file: avoid_print

import 'package:mrz_parser_esp/mrz_parser_esp.dart';

void main() {
  final mrz = [
    'P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<',
    'L898902C36UTO7408122F1204159ZE184226B<<<<<10',
  ];

  final result = MRZParser.tryParse(mrz);

  // 输出解析结果
  if (result != null) {
    print('Document Type: ${result.documentType}');
    print('Country Code: ${result.countryCode}');
    print('Surnames: ${result.surnames}');
    print('Given Names: ${result.givenNames}');
    print('Document Number: ${result.documentNumber}');
    print('Nationality Country Code: ${result.nationalityCountryCode}');
    print('Birth Date: ${result.birthDate}');
    print('Sex: ${result.sex}');
    print('Expiry Date: ${result.expiryDate}');
    print('Personal Number: ${result.personalNumber}');
    print('Personal Number 2: ${result.personalNumber2}');
  } else {
    print('Failed to parse MRZ.');
  }
}

更多关于Flutter身份证信息解析插件mrz_parser_esp的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter身份证信息解析插件mrz_parser_esp的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


mrz_parser_esp 是一个用于解析身份证、护照等证件上的机读区(MRZ, Machine Readable Zone)信息的 Flutter 插件。它可以帮助你从 MRZ 字符串中提取出有用的信息,如姓名、性别、出生日期、国籍等。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 mrz_parser_esp 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  mrz_parser_esp: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装插件。

使用插件

  1. 导入插件

    在你的 Dart 文件中导入 mrz_parser_esp 插件:

    import 'package:mrz_parser_esp/mrz_parser_esp.dart';
    
  2. 解析 MRZ 字符串

    你可以使用 MRZParser.parse 方法来解析 MRZ 字符串。MRZ 字符串通常是从身份证或护照的机读区扫描得到的。

    void parseMRZ(String mrzString) {
      try {
        MRZResult result = MRZParser.parse(mrzString);
        print('Name: ${result.name}');
        print('Surname: ${result.surname}');
        print('Gender: ${result.gender}');
        print('Date of Birth: ${result.dateOfBirth}');
        print('Nationality: ${result.nationality}');
        print('Document Number: ${result.documentNumber}');
        print('Expiration Date: ${result.expirationDate}');
      } catch (e) {
        print('Error parsing MRZ: $e');
      }
    }
    
  3. 示例 MRZ 字符串

    你可以使用以下示例 MRZ 字符串进行测试:

    String mrzString = "P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<\nL898902C36UTO7408122F0412106ZE184226B<<<<<14";
    parseMRZ(mrzString);
    
  4. 输出

    运行上述代码后,你将看到解析出的信息:

    Name: ANNA MARIA
    Surname: ERIKSSON
    Gender: F
    Date of Birth: 1974-08-12
    Nationality: UTO
    Document Number: L898902C3
    Expiration Date: 2004-12-10
回到顶部