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

Windows系统下如何通过命令提示符打印含ESC/pos指令的txt文件

你遇到的问题根源是:直接写入txt文件的\x1B这类内容是ESC/POS指令的文本转义表示,不是打印机要求的原始二进制控制字符,所以会被当成普通文本打印,而非触发对应功能。

操作步骤

1. 生成包含原始二进制ESC/POS指令的文件

不能直接在普通txt文件中输入文本形式的\x1B\x40这类转义序列,需要将其转换为对应的二进制字节存入文件,可使用以下两种Windows下的简便方法:

  • 方法一:通过PowerShell生成二进制文件
    打开PowerShell执行如下命令,可直接将你需要的指令转换为字节写入文件(示例为你给出的测试指令,可自行修改):
    # 构造ESC/POS指令字节数组
    $esc_pos_bytes = [byte[]]@(
        0x1B, 0x40, # 打印机初始化指令
        0x1D, 0x28, 0x6B, 0x0D, 0x00, 0x30, 0x50, 0x30
    ) + [System.Text.Encoding]::ASCII.GetBytes("TEST PRINT") + [byte[]]@(
        0x1D, 0x28, 0x6B, 0x03, 0x00, 0x30, 0x51
    )
    # 写入二进制文件,路径可自行替换
    [System.IO.File]::WriteAllBytes("C:\print_test.bin", $esc_pos_bytes)
    
    生成的文件后缀可以是.bin也可以是.txt,只要内容是二进制格式即可。
  • 方法二:通过十六进制编辑器写入
    如果你使用HxD等十六进制编辑工具,直接把ESC/POS指令对应的十六进制值写入文件即可,不要输入文本形式的转义序列。

2. 发送二进制文件到打印机打印

Windows自带的print命令默认会按文本模式处理文件,会自动修改换行符、转换编码,破坏原始二进制指令,推荐使用以下命令打印:

  • 推荐方案:用copy命令二进制模式传输
    打开命令提示符执行如下命令:

    copy /b C:\print_test.bin COM1
    

    其中/b参数指定按二进制模式传输文件,不会修改任何字节内容,可完整将原始指令发送给打印机。
    注意:请把上述命令中的COM1替换为你实际的打印机虚拟端口号,可在设备管理器的「端口(COM和LPT)」分类下查看对应端口

  • 若要使用print命令,需先调整配置
    先打开打印机属性→端口→选中对应COM口→配置端口,将「流控制」设为「无」,「数据位」设为8,「奇偶校验」设为无,「停止位」设为1,再执行如下命令:

    print /d:COM1 /b C:\print_test.bin
    

    同样需要加/b参数指定二进制打印模式。

内容的提问来源于stack exchange,提问作者M.Yogeshwaran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:54:04