iOS - IDScanIDParser
Installation
Installing from Xcode (relevant for both Swift and Objective-C projects)
Add the package by selecting Your project name
→ Package Dependencies
→ +
.
Search for the IDScanIDParser using the repo's URL:
https://github.com/IDScanNet/IDScanIDParserIOS
Next, set the Dependency Rule
to be Up to Next Major Version
and specify the latest version of the package as the lower bound.
Then, select Add Package
.
Choose the parsers that you want to add to your project.
Adding IDScanIDParser to a Package.swift
For integration via a Package.swift
manifest instead of Xcode, you can add IDScanIDParser to the dependencies array of your package:
let package = Package(
name: "MyPackage",
dependencies: [
.package(url: "https://github.com/IDScanNet/IDScanIDParserIOS", .upToNextMajor(from: "1.0.0"))
],
// ...
)
Then, in any target that depends on the parsers, add it to the dependencies
array of that target:
.target(
name: "MyTarget",
dependencies: [
.product(name: "IDScanPDFParser", package: "IDScanIDParserIOS"),
.product(name: "IDScanMRZParser", package: "IDScanIDParserIOS")
]
),
Installing as XCFramework (relevant for both Swift and Objective-C projects)
To install IDScanIDParser as XCFramework
, please read here
How to Activate
Obtaining a License Key for PDF Parser
In order to receive the License Key send an email to support@idscan.net with the Bundle ID. Please be sure to provide your order number in the email once ready to upgrade from trial to production mode. A unique Serial number/Registration Key is provided for this Bundle ID.
Usage
Swift
import IDScanPDFParser
import IDScanMRZParser
let pdfParser = IDScanPDFParser(activationKey: "your License key") // = IDScanPDFParser() for demo mode or you can specify activationKey later
let mrzParser = IDScanMRZParser() // IDScanMRZParser is free to use and doesn't need a license key
func resultFromDetector(_ rawString: String, type: String) { //you can use the IDScanIDDetector (https://github.com/IDScanNet/IDScanIDDetectorIOS) to get the raw string from device camera or images
switch type {
case "pdf":
if let parsedData = self.pdfParser.parse(rawString) as? [String : String]
{
self.resultFromParser(parsedData, type: type)
}
case "mrz":
if let parsedData = self.mrzParser.parse(rawString) as? [String : String]
{
self.resultFromParser(parsedData, type: type)
}
default: break
}
}
func resultFromParser(_ parsedData: [String : String], type: String) {
let firstName = parsedData["firstName"]
let birthDate = parsedData["birthDate"]
let licenseNumber = parsedData["licenseNumber"]
//etc
}
Objective-C
@import IDScanPDFParser;
@import IDScanMRZParser;
@property (strong, nonatomic) IDScanPDFParser *pdfParser;
@property (strong, nonatomic) IDScanMRZParser *mrzParser;
- (void)configureParsers {
self.pdfParser = [IDScanPDFParser parserWithActivationKey:@"your License key"]; // = [[IDScanPDFDetector alloc] init] for demo mode or you can specify activationKey later
self.mrzParser = [[IDScanMRZParser alloc] init]; // IDScanMRZParser is free to use and doesn't need a license key
}
- (void)resultFromDetector:(NSString *)rawString type:(NSString *)type { //you can use the IDScanIDDetector (https://github.com/IDScanNet/IDScanIDDetectorIOS) to get the raw string from device camera or images
if ([type isEqualToString:@"pdf"]) {
NSDictionary<NSString *, NSString *> *parsedData = [self.pdfParser parse:rawString];
[self resultFromParser:parsedData type:type];
} else if ([type isEqualToString:@"mrz"]) {
NSDictionary<NSString *, NSString *> *parsedData = [self.mrzParser parse:rawString];
[self resultFromParser:parsedData type:type];
}
}
- (void)resultFromParser:(NSDictionary<NSString *, NSString *> *)parsedData type:(NSString *)type {
NSString *firstName = parsedData[@"firstName"];
NSString *birthDate = parsedData[@"birthDate"];
NSString *licenseNumber = parsedData[@"licenseNumber"];
//etc
}