Java中的点阵式BOLD打印

时间:2015-10-03 06:29:29

标签: java printing

我编写了一个程序,用于将原始(仅文本)数据发送到打印机,这样点阵打印机只需要打印提供的文本,而不是将输入解释为图像(这样可以节省大量时间)。点阵打印机作为通用文本打印机安装在我的控制面板中。

打印机 - 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 EESC 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 打印

0 个答案:

没有答案