-
Notifications
You must be signed in to change notification settings - Fork 89
Using EUDL recognizer
EUDL recognizer is responsible for scanning, decoding and parsing front side of EU Driving licenses - EUDLs
If you completed Obtaining scanning results guide, you learned that in order to use a specific recognizer, you need to specify Recognizer Settings object in the initialization stage, and collect Recognizer Result object in the success callback.
Here we explain how to use EUDL recognizer, it's settings class PPEudlRecognizerSettings
, and result class PPEudlRecognizerResult
to obtain Driver's license information from the scanning results.
Back to "Getting started" guide.
Below is the sample source code which initializes the scanning for UK driver's licenses.
// 3. ************* Setup Scan Settings **************/
// To specify we want to perform EUDL (EU Driving license) recognition, initialize the EUDL recognizer settings
// Initializing with PPEudlCountryAny performs the scanning for all supported EU driver's licenses, while initializing with a specific EUDL country (i.e. PPEudlCountryGermany) performs the scanning only for UK dirver's licenses
PPEudlRecognizerSettings *eudlRecognizerSettings = [[PPEudlRecognizerSettings alloc] initWithCountry:PPEudlCountryAny];
// Add EUDL Recognizer setting to a list of used recognizer settings
[settings.scanSettings addRecognizerSettings:eudlRecognizerSettings];
By default, scanningViewController:didOutputResults:
callback returns results as a PPRecognizerResults
object. When the instance of this result is of type PPEudlRecognizerResult
, this means we got the result of EUDL scanning and parsing.
Below is the sample source code which demonstrates how to collect results of EUDL scanning.
- (void)scanningViewController:(UIViewController<PPScanningViewController> *)scanningViewController
didOutputResults:(NSArray<PPRecognizerResult *> *)results {
// Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects.
// first, pause scanning until we process all the results
[scanningViewController pauseScanning];
// Collect data from the result
for (PPRecognizerResult* result in results) {
// Check if result is EUDL result
if ([result isKindOfClass:[PPEudlRecognizerResult class]]) {
// Cast result to PPEudlRecognizerResult
PPEudlRecognizerResult *eudlResult = (PPEudlRecognizerResult *)result;
// Fields of the driver's license can be obtained by using methods defined in PPEudlRecognizerResult.h header file
// for First name, use ownerFirstName method
NSLog(@"First name: %@\n", [eudlResult ownerFirstName]);
// for Last name, use ownerLastName method
NSLog(@"Last names: %@\n", [eudlResult ownerLastName]);
// for Address, use ownerAdress method
NSLog(@"Address: %@\n", [eudlResult ownerAdress]);
// for Birth data, use ownerBirthData method
NSLog(@"Birth data: %@\n", [eudlResult ownerBirthData]);
// for Document issue date, use documentIssueDate method
NSLog(@"Document issue date: %@\n", [eudlResult documentIssueDate]);
// for Document exipiry date, use documentExpiryDate method
NSLog(@"Document expiry date: %@\n", [eudlResult documentExpiryDate]);
// for Driver number, use driverNumber method
NSLog(@"Driver number: %@\n", [eudlResult driverNumber]);
}
};
// either resume scanning, or dismiss Scanning View controller
// [scanningViewController resumeScanningAndResetState:YES];
[scanningViewController dismissViewControllerAnimated:YES completion:nil];
}
- Getting Started with BlinkID SDK
- Obtaining scanning results
- Using Direct Processing API
- Customizing Camera UI
- Creating customized framework
- Upgrading from older versions
- Troubleshoot