【问题标题】:Printing ESC/POS (raw) using windows powershell使用 windows powershell 打印 ESC/POS (raw)
【发布时间】:2018-09-25 02:46:13
【问题描述】:

我正在尝试使用 ESC/POS 命令在我的 Epson TM20ii 上打印收据,并将它们发送到带有打印机输出的打印机' 我已尝试使用 epson 驱动程序和通用文本驱动程序。我的问题是打印机正在打印命令而不是执行它。看例子

"LF" | out-printer -name epson

LF 是打印机输入一行的命令,而不是打印机打印字符 LF

【问题讨论】:

  • 我只想指出。这可能是我的 escpos 命令的问题,因为我对这种语言不是很熟悉。
  • @mklement0 打印机驱动程序不会使用自己的转义序列在每个作业/页面上初始化打印机,并且 powershell 不会将文本视为 utf16 并添加 cr/lf 以使预期的代码乱码吗?使用Out-File,您可以添加选项-NoNewLine -Encoding ascii,但Out-Printer 没有这些选项。
  • @LotPings:公平积分;由于从未使用过Out-Printer,我将我的评论限制为指出双引号字符串的转义序列。至于 PowerShell 发送 UTF-16LE 字符串:您希望以打印机能够理解的编码发送文本。
  • @IbberChochem:除了 LotPings 提到的潜在问题:LF 指的是换行符(ASCII 码 10 / 0xA),而不是文字字符串 "LF"。只需在文本中使用换行符就可以解决问题(要在单行双引号字符串中嵌入 LF 字符,您可以使用 `n);请注意,其他 ESC/POS 命令必须以 ESC (27 / 0x1b) 开头,有时还必须以 GS (29 / 0x1D) 字符开头(参见 content.epson.de/fileadmin/content/files/RSD/downloads/…);您可以使用$esc = [char] 27$gs = [char] 29 创建这些。

标签: powershell printing thermal-printer escpos


【解决方案1】:

我想通了。 正如一些用户评论的那样,这些命令指的是实际的 ASCII 字符。 然而,这并没有完全解决问题,因为由于某种原因,powershell out-print 命令正在以打印机不理解为被解释为 esc-pos 命令的方式将信息发送到打印机。到目前为止,我发现的最简单的解决方案是一个名为 RawPrint.exe 的命令行实用程序,可以在 here 找到它。该工具非常简单,我强烈推荐它。

【讨论】:

    猜你喜欢
    • 2014-12-14
    • 1970-01-01
    • 2014-08-25
    • 2020-02-11
    • 2013-07-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    相关资源
    最近更新 更多