代码之家  ›  专栏  ›  技术社区  ›  Alberto Smith

Zxing的“Codabar”条形码生成器在Xamarin.ios中失败

  •  -1
  • Alberto Smith  · 技术社区  · 8 年前

    我想同时显示二维码和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;
    

    二维码成功,但codabar在barcodeWriter失败。写入函数。

    请帮帮我。

    错误代码:

    ex{System.ArgumentException:无法编码:ZXing.OneD.CodaBarWriter.encode(System.String co}System.ArugmentException

    调用堆栈:

    MasterBee.HistoryDetailViewController。ViewDidLoad()位于/Volumes/Untitled/MsterBee_TEMP/MasterBee/ViewControllers/HistoryDetailViewController中。cs:69

    UIKit.UI应用程序。中的UIApplicationMain() UIKit.UI应用程序。/Users/builder/data/lanes/3339/39ebb778/source/maccore/src/UIKit/UIApplication.cs:79中的Main(string[]args,System.IntPtr主体,System.IentPtr委托)

    UIKit.UI应用程序。/Users/builder/data/lanes/3339/39ebb778/source/maccore/src/UIKit/UIApplication.cs:63中的Main(string[]args,string principalClassName,string delegateClassName)

    MasterBee.应用程序。/Volumes/Untitled/MsterBee_TEMP/MasterBee/Main.cs:15中的Main(string[]args)

    2 回复  |  直到 8 年前
        1
  •  1
  •   Michael    8 年前

    错误消息“Cannot encode'T'”表示应该编码的内容不能编码为Codabar。不知道“订单”的价值。order_number'无法说出内容有什么问题。 通常,如果要将其编码为Codabar,则只允许在内容的开头和结尾使用字符“T”。 示例:T1234567890T正常,T12345T67890T不正常。

        2
  •  0
  •   Alberto Smith    8 年前

    我找到了原因。

    这是CODABAR的格式。

    条形码有不同的格式。

    因此,如果您使用QRcode的格式文本生成CODABAR,那么它就会崩溃。

    此外,CODE_128和QRcode的格式相同。