【发布时间】: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