"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的格式是一样的。