我正在使用Zbar作为我的iOS条码扫描应用程序,但问题是它没有检测到pdf-417类型的条形码。我已经为iPhone安装了ZBAR应用程序,它也无法检测到pdf417。但是在zbar符号结构中添加了pdf 417。我还尝试通过这行代码明确启用pdf-417,但没有运气。
[scanner setSymbology: ZBAR_PDF417 config: ZBAR_CFG_ENABLE to: 1];
任何帮助?
答案 0 :(得分:4)
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 bar 代码,似乎有一些单独的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;
答案 1 :(得分:2)
如果您使用的是iOS7或更高版本,则不必依赖ZBar等第三方库。 AVFoundation内置支持使用设备相机检测1D和2D条形码,包括PDF417和QR码。 AVMetadataMachineReadableCodeObject可以解决问题。