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
更多关于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
来安装插件。
使用插件
-
导入插件:
在你的 Dart 文件中导入
mrz_parser_esp
插件:import 'package:mrz_parser_esp/mrz_parser_esp.dart';
-
解析 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'); } }
-
示例 MRZ 字符串:
你可以使用以下示例 MRZ 字符串进行测试:
String mrzString = "P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<\nL898902C36UTO7408122F0412106ZE184226B<<<<<14"; parseMRZ(mrzString);
-
输出:
运行上述代码后,你将看到解析出的信息:
Name: ANNA MARIA Surname: ERIKSSON Gender: F Date of Birth: 1974-08-12 Nationality: UTO Document Number: L898902C3 Expiration Date: 2004-12-10