"Codabar" Zxing 的条形码生成器在 Xamarin.ios 中失败
"Codabar" barcode generator by Zxing failed in Xamarin.ios
我想同时显示 QR 码和 Codabar 码。
这是我的代码。
var qrcodeWriter = new ZXing.Mobile.BarcodeWriter {
Format = ZXing.BarcodeFormat.QR_CODE,
Options = new ZXing.Common.EncodingOptions {
Width = 400,
Height = 400,
Margin = 1
}
};
var qrcode = qrcodeWriter.Write (order.order_number);
imageQR.Image = qrcode;
var barcodeWriter = new ZXing.Mobile.BarcodeWriter {
Format = ZXing.BarcodeFormat.CODABAR,
Options = new ZXing.Common.EncodingOptions {
Width = 400,
Height = 80,
Margin = 1
}
};
var barcode = barcodeWriter.Write (order.order_number);
imageBar.Image = barcode;
QR 码成功,但 codabar 在 barcodeWriter.write 函数失败。
请帮助我。
错误代码:
ex {System.ArgumentException:无法编码:'T' at ZXing.OneD.CodaBarWriter.encode (System.String co…} System.ArgumentException
调用堆栈:
MasterBee.HistoryDetailViewController.ViewDidLoad() 在 /Volumes/Untitled/MsterBee_TEMP/MasterBee/ViewControllers/History/HistoryDetailViewController.cs:69
UIKit.UIApplication.UIApplicationMain() 在
UIKit.UIApplication.Main(string[] args, System.IntPtr principal, System.IntPtr delegate) in /Users/builder/data/lanes/3339/39ebb778/source/maccore/src/UIKit/UIApplication.cs:79
UIKit.UIApplication.Main(string[] args, string principalClassName, string delegateClassName) in /Users/builder/data/lanes/3339/39ebb778/source/maccore/src/UIKit/UIApplication.cs:63
MasterBee.Application.Main(string[] args) 在 /Volumes/Untitled/MsterBee_TEMP/MasterBee/Main.cs:15
错误信息"Cannot encode 'T'"表示应该编码的内容无法编码为Codabar。在不知道 'order.order_number' 的值的情况下,无法说出内容有什么问题。
通常,字符 'T' 如果要将其编码为 Codabar,则只允许在内容的开头和结尾。
示例:T1234567890T 可以,T12345T67890T 不行。
我找到原因了。
这是CODABAR的格式。
条形码有不同的格式。
因此,如果您使用 QRcode 格式文本制作 CODABAR,那么它会崩溃。
另外,CODE_128和QRcode的格式是一样的。
我想同时显示 QR 码和 Codabar 码。
这是我的代码。
var qrcodeWriter = new ZXing.Mobile.BarcodeWriter {
Format = ZXing.BarcodeFormat.QR_CODE,
Options = new ZXing.Common.EncodingOptions {
Width = 400,
Height = 400,
Margin = 1
}
};
var qrcode = qrcodeWriter.Write (order.order_number);
imageQR.Image = qrcode;
var barcodeWriter = new ZXing.Mobile.BarcodeWriter {
Format = ZXing.BarcodeFormat.CODABAR,
Options = new ZXing.Common.EncodingOptions {
Width = 400,
Height = 80,
Margin = 1
}
};
var barcode = barcodeWriter.Write (order.order_number);
imageBar.Image = barcode;
QR 码成功,但 codabar 在 barcodeWriter.write 函数失败。
请帮助我。
错误代码:
ex {System.ArgumentException:无法编码:'T' at ZXing.OneD.CodaBarWriter.encode (System.String co…} System.ArgumentException
调用堆栈:
MasterBee.HistoryDetailViewController.ViewDidLoad() 在 /Volumes/Untitled/MsterBee_TEMP/MasterBee/ViewControllers/History/HistoryDetailViewController.cs:69
UIKit.UIApplication.UIApplicationMain() 在 UIKit.UIApplication.Main(string[] args, System.IntPtr principal, System.IntPtr delegate) in /Users/builder/data/lanes/3339/39ebb778/source/maccore/src/UIKit/UIApplication.cs:79
UIKit.UIApplication.Main(string[] args, string principalClassName, string delegateClassName) in /Users/builder/data/lanes/3339/39ebb778/source/maccore/src/UIKit/UIApplication.cs:63
MasterBee.Application.Main(string[] args) 在 /Volumes/Untitled/MsterBee_TEMP/MasterBee/Main.cs:15
错误信息"Cannot encode 'T'"表示应该编码的内容无法编码为Codabar。在不知道 'order.order_number' 的值的情况下,无法说出内容有什么问题。 通常,字符 'T' 如果要将其编码为 Codabar,则只允许在内容的开头和结尾。 示例:T1234567890T 可以,T12345T67890T 不行。
我找到原因了。
这是CODABAR的格式。
条形码有不同的格式。
因此,如果您使用 QRcode 格式文本制作 CODABAR,那么它会崩溃。
另外,CODE_128和QRcode的格式是一样的。