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

基于Deno向ESC-POS打印机发送ANSI打印指令的可行性问询

实现Deno与MunByn ITPP047UE-WH打印机通信的可行方案

可以实现Deno与该ESC-POS打印机的通信,以下是两种实用方案:

1. 优先方案:利用网络打印(适配网转USB连接)

网转USB适配器通常支持RAW打印协议(默认端口9100,这是ESC-POS打印机的通用网络打印端口),通过TCP连接直接发送ESC-POS指令字节流即可完成打印。

步骤与示例代码

  1. 确认适配器的网络参数:进入适配器管理界面(通常为默认IP,如192.168.1.1),查看并记录打印机的IP地址与RAW端口号(一般为9100)。
  2. 编写Deno代码构造并发送ESC-POS指令:
// 替换为你的打印机实际IP和端口
const PRINTER_IP = "192.168.1.100";
const PRINTER_PORT = 9100;

// 构造抽奖票据的ESC-POS指令
const escPosCommands = new Uint8Array([
  0x1B, 0x40, // 初始化打印机
  ...new TextEncoder().encode("=== 抽奖票据 ===\n"),
  ...new TextEncoder().encode("票据编号: 20240520001\n"),
  ...new TextEncoder().encode("奖品类型: 二等奖\n"),
  ...new TextEncoder().encode("中奖时间: 2024-05-20 14:30\n"),
  0x1B, 0x69, // 切纸指令(依据打印机手册调整)
]);

// 发送打印任务
async function printTicket() {
  const conn = await Deno.connect({ hostname: PRINTER_IP, port: PRINTER_PORT });
  await conn.write(escPosCommands);
  conn.close();
  console.log("打印任务已发送");
}

printTicket().catch(console.error);
  1. 运行代码时需授予网络权限:
deno run --allow-net print.ts

2. 备选方案:直接操作USB设备

Deno支持Web USB API(需启用不稳定特性),可直接枚举并连接USB打印机设备,绕过虚拟COM端口的问题。

步骤与示例代码

  1. 获取打印机的USB厂商ID(VID)和产品ID(PID):
    • Windows:通过设备管理器查看打印机设备的USB属性;
    • Linux/macOS:使用lsusb命令查询。
  2. 编写Deno代码连接USB设备并发送指令:
// 替换为你的打印机实际VID和PID
const VID = 0xXXXX;
const PID = 0xXXXX;

async function connectAndPrint() {
  // 请求USB设备权限
  const device = await Deno.requestDevice({
    filters: [{ vendorId: VID, productId: PID }],
  });
  
  await device.open();
  await device.selectConfiguration(1);
  const interfaceNum = 0; // 依据打印机USB接口参数调整
  await device.claimInterface(interfaceNum);

  // 发送ESC-POS打印指令
  const printData = new Uint8Array([
    0x1B, 0x40,
    ...new TextEncoder().encode("USB连接测试打印\n"),
    0x1B, 0x69
  ]);
  await device.transferOut(1, printData); // 端点地址依据打印机手册调整

  await device.close();
}

connectAndPrint().catch(console.error);
  1. 运行代码时需授予USB权限并启用不稳定特性:
deno run --unstable --allow-usb print.ts

额外注意事项

  • 严格参考打印机手册中的ESC-POS指令集,确保初始化、字体设置、切纸等指令符合该型号打印机的要求;
  • 测试阶段先发送简单的初始化+文本打印指令,确认通信正常后再构建复杂的抽奖票据格式;
  • 若使用网络方案,需确保电脑与打印机处于同一局域网,且适配器的RAW打印功能已开启。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:55:42