我正在为我的 iOS 条码扫描应用程序使用 Zbar,但问题是它没有检测到 pdf-417 类型的条码。我已经为 iPhone 安装了 ZBAR 应用程序,它也无法检测到 pdf417。但是在 zbar 符号结构中添加了 pdf 417。我还尝试通过这行代码显式启用 pdf-417,但没有运气。
[scanner setSymbology: ZBAR_PDF417 config: ZBAR_CFG_ENABLE to: 1];
有什么帮助吗?
Zbar 扫描仪仅支持某些特定的条码类型。
它支持条形码格式,例如我们的 AN-13/UPC-A、UPC-E、EAN-8、Code 128、Code 39、Interleaved 2 of 5 和 QR Code。
参考本站:http: //zbar.sourceforge.net/
对于PDF-417 条码,似乎有一些单独的 SDK 可用。它将支持诸如Pdf417、QrCode、LicenseInfo、Code128、Code39、EAN13、EAN8、ITF、UPC 和 UPCE 等条码。
https://github.com/PDF417/pdf417-ios
使用配置类型自定义这个:
[scanner setSymbology: ZBAR_PDF417 config: ZBAR_CFG_ENABLE to: 1];
只需尝试所有配置类型并检查。
typedef enum zbar_config_e {
ZBAR_CFG_ENABLE = 0, /**< enable symbology/feature */
ZBAR_CFG_ADD_CHECK, /**< enable check digit when optional */
ZBAR_CFG_EMIT_CHECK, /**< return check digit when present */
ZBAR_CFG_ASCII, /**< enable full ASCII character set */
ZBAR_CFG_NUM, /**< number of boolean decoder configs */
ZBAR_CFG_MIN_LEN = 0x20, /**< minimum data length for valid decode */
ZBAR_CFG_MAX_LEN, /**< maximum data length for valid decode */
ZBAR_CFG_UNCERTAINTY = 0x40,/**< required video consistency frames */
ZBAR_CFG_POSITION = 0x80, /**< enable scanner to collect position data */
ZBAR_CFG_X_DENSITY = 0x100, /**< image scanner vertical scan density */
ZBAR_CFG_Y_DENSITY, /**< image scanner horizontal scan density */
} zbar_config_t;
如果你使用的是 iOS7 或以上版本,则不必依赖 ZBar 之类的第三方库。AVFoundation内置支持使用设备摄像头检测一维和二维条码,包括 PDF417 和二维码。AVMetadataMachineReadableCodeObject可以解决问题。