1

我正在iOS 6中开发条形码阅读器应用程序,

我正在使用ZBar sdk,我使用本 教程开发了应用程序.. 当我扫描任何条形码时,它只扫描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];

}

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

4

1 回答 1

5

来自Zbar 常见问题解答

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]
于 2013-01-28T11:50:02.850 回答