ZBarReader仅扫描iOS 6中的UPC_A格式

时间:2013-01-28 09:36:16

标签: iphone ipad ios6 barcode-scanner zbar-sdk

我正在 iOS 6

中开发BarCode阅读器应用程序

我正在使用ZBar sdk,我使用此Tutorial..开发了应用 当我扫描任何条形码时,它只扫描UPC格式的产品,但它不扫描任何其他格式的产品,如EAN_13Code_128等。

这是我的代码段,

- (IBAction) scanButtonTapped
{

    ZBarReaderViewController *reader = [ZBarReaderViewController new];
    reader.readerDelegate = self;
    reader.supportedOrientationsMask = ZBarOrientationMaskAll;

    ZBarImageScanner *scanner = reader.scanner;

    [scanner setSymbology: ZBAR_I25
                   config: ZBAR_CFG_ENABLE
                       to: 0];

    [self presentViewController:reader animated:YES completion:nil];

}

- (void) imagePickerController: (UIImagePickerController*) reader
 didFinishPickingMediaWithInfo: (NSDictionary*) info
{
    id<NSFastEnumeration> results =
    [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)
        break;

    NSLog(@"symbol.data=%@",symbol.data);

    [reader dismissViewControllerAnimated:YES completion:nil];

}

如何扫描所有类型的产品?任何想法?

1 个答案:

答案 0 :(得分:5)

来自Zbar FAQs

  

ZBar解码器默认只启用EAN-13

  

UPC-A符号系统是EAN-13的子集,以前导0开头......您可以选择通过明确启用UPC-A来接收12位数结果。

听起来好像启用了EAN 13。要启用Code 128,请在禁用Interleaved 2 of 5(I25)

后放置以下代码段
[scanner setSymbology: ZBAR_CODE128
     config: ZBAR_CFG_ENABLE
     to: 1];

如果您想严格控制启用和禁用的内容,请禁用所有符号系统并有选择地启用您想要的符号

// Disable all symbologies
[scanner setSymbology: 0
     config: ZBAR_CFG_ENABLE
     to: 0];
// Enable EAN 13
[scanner setSymbology: ZBAR_EAN13
     config: ZBAR_CFG_ENABLE
     to: 1];
// Enable UPC-A
[scanner setSymbology: ZBAR_UPCA
     config: ZBAR_CFG_ENABLE
     to: 1];
// Enable Code 128
[scanner setSymbology: ZBAR_CODE128
     config: ZBAR_CFG_ENABLE
     to: 1]