【问题标题】:Esc pos print bar codeEsc pos 打印条码
【发布时间】:2014-08-25 12:20:00
【问题描述】:

我在使用转义字符打印 ITF 条形码时遇到问题。我有一个将 Pos 用于 .NET 的 .NET 应用程序,但我不能使用“PrintBarCode”方法。我的代码如下所示:

public static void PrintBarCode()
    {
        var barCodeStr = ((char)29).ToString() + "k5123456" + ((char)0).ToString();
        var printer = new PosPrinter();
        printer.PrintNormal(PrinterStation.Receipt, barCodeStr);
    }

这段代码只打印“123456”,我无法让它打印条形码。

【问题讨论】:

  • .NET 使用 unicode 字符串,所以这可能不是一个好主意。另外,为什么您认为PosPrinter 应该适用于您的用例?为什么你使用PrintNormal 而不是PrintBarcode
  • 这只是一个例子。当然还有 PosPrinter 类的扩展用法(声明、启用、初始化等)。由于之前的实施,我需要这个。我们在一笔交易中打印了带有 esc 字符的巨大字符串。它符合以前的要求,因为条形码是最后打印的,但现在我们必须在该交易中间使用条形码,而且我们没有太多时间重写它。这是设计缺陷,但我们需要快速修复。
  • 你不能用TransactionPrint将开始文本、条码打印、结束文本批量打印成一个打印件吗?或者更确切地说,PageModePrint 应该允许您在一张收据上使用多个 PrintXXX

标签: c# .net opos barcode-printing pos-for-.net


【解决方案1】:

我知道这篇文章很旧,但希望它可以帮助。假设您使用的是 U/OPOS 问题是转义序列。正如您可以在 UnifiedPOS 版本 1.14.1 上找到的那样——2014 年 10 月 23 日

应用程序可以使用 ESC|[*]#R 转义序列与其他打印命令一起打印条形码。字符“#”是 R 后面的字符数用于定义 要打印的条码的特征。

属性符号定义如下:
符号
高度

对齐
人类可读的文本位置
d 数据开始
e 序列结束
属性必须按上述列表中指定的顺序出现。

一个例子是 ESC|33Rs101h200w400a-2t-13d123456789012e
其中 ESC = 在 c# 中是:

char[] Escape = new char[1]{'\x1B'};

【讨论】:

  • 感谢它的工作!除了无法在 epson T20 II 上更改打印的 QR 的宽度和高度。你记得有什么技巧可以改变 w 和 h 吗?
猜你喜欢
  • 2014-01-17
  • 1970-01-01
  • 2014-12-14
  • 1970-01-01
  • 2016-01-12
  • 2020-02-11
  • 2013-07-01
  • 1970-01-01
  • 2014-06-27
相关资源
最近更新 更多