LicenseParser 0.5.9

LicenseParser 0.5.9

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布上次发布2016 年 7 月
SPM支持 SPM

Clayton LZ 维护。



  • 作者:
  • Clayton LZ

LicenseParser

Issue Count

轻松解析符合 AAMVA 版本 8 标准的美国和加拿大驾驶执照背面的 PDF-417 条形码中的信息。

使用方法

// First get the PDF-417 barcode data by scanning the barcode on the license
let pdf417Data: String = MyFakeLicenseScanner.scan()

// Create a parser with that data
let parser: Parser = Parser(data: pdf417Data)

// Ask the parser to parse it
let parsedLicense: ParsedLicense = parser.parse()

print(parsedLicense.firstName)
// => Optional("John")
print(parsedLicense.middleName)
// => Optional("Quincy")
print(parsedLicense.lastName)
// => Optional("Public")

AAMVA 标准

支持的字段

名称 描述 类型 ParsedLicense 属性
客户名 字符串 firstName
客户姓 字符串 lastName
中间名 客户中间名 字符串 middleName
到期日期 文件到期日期 NSDate expirationDate
发行日期 文件发行日期 NSDate issueDate
出生日期 客户出生日期 NSDate dateOfBirth
性别 客户性别 枚举 gender
眼睛颜色 客户眼睛颜色 枚举 eyeColor
发色 客户发色 枚举 hairColor
身高 客户身高(英寸为单位) Double height
街道地址 客户街道地址 字符串 streetAddress
第二街道地址 客户街道地址第二行 字符串 streetAddressSupplement
城市 客户城市 字符串 city
客户州 字符串 state
邮政编码 客户邮政编码 字符串 postalCode
客户 ID 唯一客户 ID 号码 字符串 customerId
文件 ID 唯一文件 ID 号码 字符串 documentId
发行国家 发行国家 枚举 issuingCountry
中间名截断 中间名是否被截断? 枚举 middleNameTruncation
名截断 名是否被截断? 枚举 firstNameTruncation
姓截断 姓是否被截断? 枚举 lastNameTruncation
出生地 国家、市和/或州/省 字符串 placeOfBirth
审计信息 一串字母和/或数字,标识驾驶执照/身份证是由何时、何地和谁制作的。 字符串 auditInformation
库存控制 一串字母和/或数字,贴在用于制造驾驶执照和身份证的原始材料(卡片纸、多层材料等)上。 字符串 inventoryControlNumber
姓别名 持卡人知道的另一个姓。 字符串 lastNameAlias
名别名 持卡人知道的另一个名。 字符串 firstNameAlias
后缀别名 持卡者所知的其他后缀 字符串 suffixAlias
姓名后缀 姓名后缀 枚举 suffix

AAMVA 元素 ID

以下是一个表格,列出了 AAMVA 元素 ID 和它们通过 AAMVA 版本映射的字段。

粗体 = 必选字段

-- = 不包含在此版本的规范中

字段 版本 1 版本 2 版本 3 版本 4 版本 5 版本 6 版本 7 版本 8 支持
DAC DCT DCT DAC DAC DAC DAC DAC Y
DAB DCS DCS DCS DCS DCS DCS DCS Y
中间名 DAD DAD DAD DAD DAD DAD DAD DAD Y
到期日期 DBA DBA DBA DBA DBA DBA DBA DBA Y
发行日期 DBD DBD DBD DBD DBD DBD DBD DBD Y
出生日期 DBB DBB DBB DBB DBB DBB DBB DBB Y
性别 DBC DBC DBC DBC DBC DBC DBC DBC Y
眼睛颜色 DAY DAY DAY DAY DAY DAY DAY DAY Y
身高(英寸) DAU DAU DAU DAU DAU DAU DAU DAU Y
街道地址 DAG DAG DAG DAG DAG DAG DAG DAG Y
城市 DAI DAI DAI DAI DAI DAI DAI DAI Y
DAJ DAJ DAJ DAJ DAJ DAJ DAJ DAJ Y
邮政编码 DAK DAK DAK DAK DAK DAK DAK DAK Y
客户 ID DBJ DAQ DAQ DAQ DAQ DAQ DAQ DAQ Y
文件 ID -- DCF DCF DCF DCF DCF DCF DCF Y
发行国家 -- DCG DCG DCG DCG DCG DCG DCG Y
中间名截断 -- DDG -- DDG DDG DDG DDG DDG Y
名截断 -- DDF -- DDF DDF DDF DDF DDF Y
姓截断 -- DDE -- DDE DDE DDE DDE DDE Y
第二街道地址 DAH DAH DAH DAH DAH DAH DAH DAH Y
发色 DAZ DAZ DAZ DAZ DAZ DAZ DAZ DAZ Y
出生地 -- -- DCI DCI DCI DCI DCI DCI Y
审计信息 -- -- DCJ DCJ DCJ DCJ DCJ DCJ Y
库存控制 -- -- DCK DCK DCK DCK DCK DCK Y
姓别名 DBO DBN DBN DBN DBN DBN DBN DBN Y
名别名 DBP DBG DBG DBG DBG DBG DBG DBG Y
后缀别名 DBR -- DBS DBS DBS DBS DBS DBS Y
姓名后缀 DBN DCU DCU DCU DCU DCU DCU DCU Y

原始驾驶执照负载示例

版本 8 许可证数据示例

@

ANSI 636026080102DL00410288ZA03290015DLDAQD12345678
DCSPUBLIC
DDEN
DACJOHN
DDFN
DADQUINCY
DDGN
DCAD
DCBNONE
DCDNONE
DBD08242015
DBB01311970
DBA01312035
DBC1
DAU069 in
DAYGRN
DAG789 E OAK ST
DAIANYTOWN
DAJCA
DAK902230000  
DCF83D9BN217QO983B1
DCGUSA
DAW180
DAZBRO
DCK12345678900000000000
DDB02142014
DDK1
ZAZAAN
ZAB
ZAC

安装

LicenseParser 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod "LicenseParser"

许可证

LicenseParser 可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。

变更日志

0.5.8

  • 支持以厘米为单位解析高度(仍然以英寸表示)
  • 支持版本三 AAMVA 许可证

0.5.7

  • 删除 Crossroads Regex 依赖
  • 修复基于换行符错误的解析问题

0.5.6

  • 在解析之前改进 AAMVA 版本发现

0.5.5

  • 使用 DAA “驾驶员许可证名称”标识符支持版本一许可证,将姓氏、中间名、姓氏后缀存储在一起。

0.5.4

  • 公开解析许可证中的原始 PDF-417 值

0.5.3

  • 更新 CrossroadRegex 依赖关系和新 Swift 3 API

0.5.2

  • 依赖更新

0.5.1

  • 支持额外的 AAMVA 版本

0.5.0

  • 从文档中添加解析 AAMVA 版本的命令