You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Zxing在Code-128条码中嵌入回车符(0x0d)

在ZXing中为Code 128条码嵌入回车符(0x0d)

嘿,我来帮你搞定这个问题!其实ZXing的Code128编码器本身就支持处理ASCII控制字符,包括回车符,关键是要正确构造输入内容,下面是具体的实现步骤(以Java为例,其他语言逻辑互通):

  • 构造包含回车符的输入字符串
    直接在字符串里插入回车符对应的字符就行。在Java里,你可以用\r或者强制转换(char) 0x0d来表示,比如:

    // 两种写法都可以,选你觉得直观的就行
    String barcodeContent = "订单编号: 12345\r客户名称: 张三";
    // 或者
    String barcodeContent = "订单编号: 12345" + (char) 0x0d + "客户名称: 张三";
    
  • 用ZXing生成Code 128条码
    调用Code128Writer的编码方法时,直接传入这个带回车符的字符串就好,ZXing会自动处理控制字符的编码逻辑——它会根据字符类型自动切换到Code 128的子集A(子集A原生支持ASCII 0-95的字符,包括所有控制符),不需要你手动切换编码子集:

    Code128Writer writer = new Code128Writer();
    // 生成条码矩阵,参数分别是内容、条码格式、宽度、高度
    BitMatrix barcodeMatrix = writer.encode(
        barcodeContent,
        BarcodeFormat.CODE_128,
        400,
        150
    );
    // 这里可以把矩阵转换成图片,比如用ZXing的MatrixToImageWriter工具类
    MatrixToImageWriter.writeToPath(barcodeMatrix, "PNG", Paths.get("barcode.png"));
    
  • 额外注意点

    • 不是所有条码阅读器都默认解析控制字符,所以要确保你的阅读器开启了“识别控制字符”的相关设置,大部分现代商用阅读器都支持这个功能。
    • 如果是用其他语言(比如C#、Python),逻辑完全一致:构造包含\r的字符串,直接传给对应语言的ZXing Code128编码器即可。比如Python的示例:
      from zxing import Code128Writer
      
      content = "订单编号: 12345\r客户名称: 张三"
      writer = Code128Writer()
      writer.write(content, "output_barcode.png", 400, 150)
      

内容的提问来源于stack exchange,提问作者Johan Vetsuypens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:43:48