轻松解析符合 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")
名称 | 描述 | 类型 | 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 版本映射的字段。
粗体 = 必选字段
--
= 不包含在此版本的规范中
字段 | 版本 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 文件。
DAA
“驾驶员许可证名称”标识符支持版本一许可证,将姓氏、中间名、姓氏后缀存储在一起。