[英]Xamarin Forms - ZXing Scan PDF417 Barcode - How to decode Results.Text
I have successfully scanned a PDF417 Barcode from a drivers licence and I have results in a string, my question is how would I decode this to an object?我已经成功扫描了驾驶执照中的 PDF417 条形码,结果是一个字符串,我的问题是如何将其解码为 object? Has anyone done this before?
有没有人这样做过?
Here is my code:这是我的代码:
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);
}
I am able to get the Text results in the method Handle_OnScanResult, but now I want to convert that to an object.我能够在 Handle_OnScanResult 方法中获得文本结果,但现在我想将其转换为 object。
Here is the string that gets returned:这是返回的字符串:
"@\n\x1e\rANSI 636000090002DL00410278ZV03190008DLDAQT64235789\nDCSSAMPLE\nDDEN\nDACMICHAEL\nDDFN\nDADJOHN\nDDGN\nDCUJR\nDCAD\nDCBK\nDCDPH\nDBD06062016\nDBB06061986\nDBA12102024\nDBC1\nDAU068 in\nDAYBRO\nDAG2300 WEST BROAD STREET\nDAIRICHMOND\nDAJVA\nDAK232690000 \nDCF2424244747474786102204\nDCGUSA\nDCK123456789\nDDAF\nDDB06062008\nDDC06062009\nDDD1\rZVZVA01\r"
"@\n\x1e\rANSI 636000090002DL00410278ZV03190008DLDAQT64235789\nDCSSAMPLE\nDDEN\nDACMICHAEL\nDDFN\nDADJOHN\nDDGN\nDCUJR\nDCAD\nDCBK\nDCDPH\nDBD06062016\nDBB06061986\nDBA12102024\nDBC1\nDAU068 in\nDAYBRO\nDAG2300 WEST BROAD STREET\nDAIRICHMOND\ nDAJVA\nDAK232690000 \nDCF2424244747474786102204\nDCGUSA\nDCK123456789\nDDAF\nDDB06062008\nDDC06062009\nDDD1\rZVZVA01\r"
From this barcode:从这个条形码:
https://user-images.githubusercontent.com/482138/51589235-b638d500-1ee6-11e9-87f0-5acb9229b9a5.png https://user-images.githubusercontent.com/482138/51589235-b638d500-1ee6-11e9-87f0-5acb9229b9a5.png
Here is my custom class I am trying to put data into:这是我正在尝试将数据放入的自定义 class:
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; }
}
there's really no point into converting to JSON first.首先转换为 JSON 真的没有意义。 Just parse the data into your object
只需将数据解析到您的 object
//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
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.