Zxing能读取0开头的条码吗?
Can Zxing read barcode starting with 0?
我将 ZXing 集成到一个 Xamarin.Forms 项目中,该项目使用户能够扫描条形码并将接收到的数据放入输入字段。我用 13 位条码试过,它总是无法读取第一个数字“0”并接收剩余的 12 位数字。
以其他数字开头的条形码工作正常。我现在通过只接受 13 位数字来对代码进行创可贴,但这不是 "solution"。
using ZXing.Net.Mobile.Forms;
async void ScanButtonClicked(object sender, EventArgs s)
{
var scanPage = new ZXingScannerPage()
await Navigation.PushAsync(scanPage);
scanPage.OnScanResult += (result) =>
{
scanPage.IsScanning = false;
Device.BeginInvokeOnMainThread(async () =>
{
if (result != null && result.length == 13) // this is just a band-aid...
{
entry.text = result.Text;
}
});
};
}
我该如何解决这个问题?
UPC-A是EAN-13的一个子集,任何以0开头的EAN-13都将被视为UPC-A,即12位无前导0.An EAN前导0为与没有 0 的 UPC 代码相同。它作为 UPC 返回。如果您希望响应仅是 EAN-13 解释,请将其设置为唯一请求的格式,如下所示:
var opts = new MobileBarcodeScanningOptions
{
PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.EAN_13 }
};
我将 ZXing 集成到一个 Xamarin.Forms 项目中,该项目使用户能够扫描条形码并将接收到的数据放入输入字段。我用 13 位条码试过,它总是无法读取第一个数字“0”并接收剩余的 12 位数字。
以其他数字开头的条形码工作正常。我现在通过只接受 13 位数字来对代码进行创可贴,但这不是 "solution"。
using ZXing.Net.Mobile.Forms;
async void ScanButtonClicked(object sender, EventArgs s)
{
var scanPage = new ZXingScannerPage()
await Navigation.PushAsync(scanPage);
scanPage.OnScanResult += (result) =>
{
scanPage.IsScanning = false;
Device.BeginInvokeOnMainThread(async () =>
{
if (result != null && result.length == 13) // this is just a band-aid...
{
entry.text = result.Text;
}
});
};
}
我该如何解决这个问题?
UPC-A是EAN-13的一个子集,任何以0开头的EAN-13都将被视为UPC-A,即12位无前导0.An EAN前导0为与没有 0 的 UPC 代码相同。它作为 UPC 返回。如果您希望响应仅是 EAN-13 解释,请将其设置为唯一请求的格式,如下所示:
var opts = new MobileBarcodeScanningOptions
{
PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.EAN_13 }
};