Xamarin Forms - ZXing Scan PDF417 条形码 - 如何解码 Results.Text.



我已经成功地扫描了驾驶执照上的PDF417条形码,我有一个字符串的结果,我的问题是我如何将其解码为对象?以前有人这样做过吗?

这是我的代码:

public void Scan_Barcode(object sender, EventArgs e)
{
var options = new MobileBarcodeScanningOptions
{
TryHarder = true,
CameraResolutionSelector = HandleCameraResolutionSelectorDelegate,
PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.PDF_417 }
};

BarcodeScanView.Options = options;
BarcodeScanView.IsVisible = true;
BarcodeScanView.IsScanning = true;
}
public CameraResolution HandleCameraResolutionSelectorDelegate(List<CameraResolution> availableResolutions)
{
if (availableResolutions == null || availableResolutions.Count < 1)
return new CameraResolution() { Width = 800, Height = 600 };
return availableResolutions[availableResolutions.Count - 1];
}
public void Handle_OnScanResult(Result result)
{
Console.WriteLine(result.Text);
}

我能够在方法Handle_OnScanResult中获取文本结果,但现在我想将其转换为对象。

下面是返回的字符串:

"@\x1e\rANSI 636000090002DL00410278ZV03190008DLDAQT64235789DCSSAMPLEDDENDACMICHAELDDFNDADJOHNDDGNDCUJRDCADDCBKDCDPHDBD06062016DBB06061986DBA12102024DBC1DAU068 在天布罗DAG2300 西布罗德 街道戴里士满DAJVADAK232690000 DCF24244747474786102204DCGUSADCK123456789DDAFDDB06062008DDC06062009DDD1\rZVZVA01\r">

从此条形码:

https://user-images.githubusercontent.com/482138/51589235-b638d500-1ee6-11e9-87f0-5acb9229b9a5.png

这是我尝试将数据放入的自定义类:

public class DriversLicenseClass
{
public DriversLicenseClass()
{
}
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DOB { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string PostalCode { get; set; }
public string DriversLicenceNumber { get; set; }
public DateTime Issued { get; set; }
public DateTime Expiry { get; set; }
public string DD { get; set; }
public string Height { get; set; }
}

首先转换为JSON真的没有意义。 只需将数据解析到您的对象中

//response is the decoded text from the barcode
var data = response.Split('n');
foreach(var line in data)
{
if (line.Length > 3) {
var code = line.Substring(0,3);
var value = line.Substring(4);
switch (code) {
case "DAB":  // last name
LastName = value;
break;
case "DAC":  // first name
FirstName = value;
break;
... add other cases here
}
}
}

最新更新