I have been shipping an app for some time that uses AVFoundation Framwork to read the PDF417 barcode on a driver's license in order to capture data. Works great with a number of different state drivers' licenses. However, I have been unable to get it to read any license from the state of Maryland. My app also can use optional attachments from Honeywell or Infinite Peripherals that read barcodes using a laser scanner. Those attachments are able to read the same Maryland barcodes easily.
What should happen is a callback to:
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
But the callback never occurs when scanning the barcode on a Maryland license. It does for any other state license that I have so far tried. I have not yet had this problem with any other state issued licenses, but I have not tried them all yet.
Has anyone else seen this issue?
Update: This is not a question about how to use the AVFoundation framework to read a barcode. I have multiple products in the app store that do just that, including PDF417 codes. And the barcode in question is most definitely a PDF417 barcode because the USA requires all 50 states and Puerto Rico to put a PDF417 barcode on their licenses.
Final Status: I was able to scan MD licenses. Turns out they contain quite a bit more data than other license formats I had been working with. As a result, scanning them using a camera requires better lighting and a steadier hand than other less dense barcodes. It can be done and does work. I have decided to leave this question up so that anyone else who has this problem can see the solution posted below and can understand that it is possible.