使用jZebra在同一收据上打印HTML和PostScript

Printing HTML and PostScript on the same receipt using jZebra

本文关键字:打印 HTML PostScript jZebra 使用      更新时间:2023-09-26

根据这里的教程,我可以使用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();,并尝试切换打印顺序,但没有任何变化。有没有一种方法可以一次性打印条形码和文本?

是的,您可以请求什么,但不应该交替使用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@(十六进制:''x1B''x40)开始将样式设置为粗体,字体A(位0(表示字体0)+位8(表示强调)=8,ESC!8,十六进制:''x1B''x08)
  • 将样式设置为字体B,不带任何样式(bit 1=1,ESC!1,hex:''x1B''x01)
  • "剪切"命令
  • 如果其他程序正在使用此程序,请确保重置打印机,以防无法重置

代码片段的来源于jZebra邮件列表中的Bahadir。

-Tres