1

根据此处的教程,我可以使用 jZebra 将 HTML 和 PostScript 分别打印到 Epson T88V 收据打印机。我想在同一个标​​签上使用两种打印方法 - HTML 用于文本和布局,PostScript 用于条形码渲染。不幸的是,我只能打印一个或另一个,而不是在同一个标​​签上。

这是包含在打印按钮单击事件中的js:

//   Text print
applet.appendHTML('<html><table face="monospace" border="1px"><tr height="6cm">' + 
               '<td valign="top">' + [some var value] + '</td>' + 
                   '<td valign="top">' + [some other var value] + '</td>' + 
                   '</tr></table></html>');
applet.printHTML();

//   Barcode print
applet.append("\x1D\x77\x02\x1D\x6B\x49\x11\x7B\x41\x4C000288496\x508149"); 
applet.print();

如果我按原样运行代码,则只打印文本。如果我注释掉文本打印行,则打印条形码。

我尝试applet.clear();在第一次打印后使用并尝试切换打印顺序但没有任何变化。有没有办法一次性打印条形码和文本?

4

1 回答 1

1

是的,您的要求是可能的,但您不应该互换使用 HTML 和 ESC/P 命令。请参阅打印机制造商提供的 ESC/P 编程器手册以打印文本。

这是来自 ESCPCommands 的示例取自 jZebra wiki,并附有简短说明。

applet.append("\x1B\x40"); // 1
applet.append("\x1B\x21\x08"); // 2
applet.append(" International \r\n");
applet.append(" Company \r\n");
applet.append("\x1B\x21\x01"); // 3
applet.append(" ************************************************** \r\n");
applet.append("Info: 42972\r\n");
applet.append("Info: Kommm\r\n");
applet.append("Datum: 14:00 01/02\r\n");
applet.append(" -------------------------------------------------- \r\n");
applet.append("Info: 42972\r\n");
applet.append("Info: Kommm\r\n");
applet.append("Datum: 14:00 01/02\r\n");
applet.append(" -------------------------------------------------- \r\n");
applet.append(" \r\n");
applet.append(" \r\n");
applet.append(" \r\n");
applet.append(" \r\n");
applet.append("\x1D\x56\x41"); // 4
applet.append("\x1B\x40"); // 5
  • 此处以启动命令 ESC @ (hex: \x1B\x40) 将样式设置为粗体,字体 A ( bit 0 (表示字体 0) + bit 8 (表示强调) = 8, ESC ! 8, hex: \x1B\ x08)
  • 将样式设置为字体 B,没有任何样式(位 1 = 1,ESC !1,十六进制:\x1B\x01)
  • 剪切命令
  • 如果任何其他程序正在使用此打印机,请确保重置打印机,以防万一它不会重置它。

代码片段的功劳来自 jZebra 邮件列表中的 Bahadir。

-特雷斯

于 2013-10-12T06:17:55.943 回答