我编写了一个程序,用于将原始(仅文本)数据发送到打印机,这样点阵打印机只需要打印提供的文本,而不是将输入解释为图像(这样可以节省大量时间)。点阵打印机作为通用文本打印机安装在我的控制面板中。
打印机 - Wep 800 DX http://www.wepindia.com/Support/Support.aspx?ItemCode=MFD-0380
PrintService service = //My Dot Matrix Print Service
String input = "ESC E BOLD ESC F PRINTING\n";
InputStream stream = new ByteArrayInputStream((input.getBytes(Charset.defaultCharset()));
Doc doc = new SimpleDoc(stream, DocFlavor.INPUT_STREAM.AUTOSENSE, null);
DocPrintJob job = service.createPrintJob();
try {
job.print(doc, null);
} catch (PrintException e) {
e.printStackTrace();
}
// Codes
// ESC E - Turn Bold printing on
// ESC F - Turn Bold printing off
我从
获取代码列表http://www.lprng.com/DISTRIB/RESOURCES/PPD/epson.htm
http://webpages.charter.net/dperr/links/esc_p83.htm
我从epson获取代码的原因是因为我读到的这些代码是由大多数其他制造商实现的,而且我似乎无法在制造商的网站上找到我的打印机的任何打印机手册。
但是当我运行这个程序时,命令代码ESC E
和ESC F
被打印在纸上而不是将其解释为命令代码。
也许我正在以错误的格式发送命令代码。任何帮助将不胜感激。
更新 - 让它正常运行,谢谢@ user2357112
char[] bold = {0x001B, 0x0045}; // ESC, E
char[] unbold = {0x001B, 0x0046}; // ESC, F
String input = new String(bold) + " BOLD " + new String(unbold) + " PRINTING\n";
输出 - BOLD 打印