[英]Java print API send commands to printer
我的計算機(Windows 7)上安裝了一些打印機,並且在控制面板上顯示良好。
我想發送一些特殊命令,例如:剪切命令或條碼打印命令(ESC/POS 命令)。
是否可以使用 Java Print API 做到這一點? 還是 Java Print API 只執行打印服務?
提前致謝。
問題已解決:感謝 VGR。
這是一個可以幫助任何遇到相同問題的人的代碼:
private PrintService printer = ...; // init this using PrintService.lookupPrintServices();
if(this.printer != null) {
String commandToSend = "Some command\n";
Doc myDoc = new SimpleDoc(commandToSend.getBytes(), DocFlavor.BYTE_ARRAY.AUTOSENSE, null);
DocPrintJob job = this.printer.createPrintJob();
try {
job.print(myDoc, null);
} catch (PrintException e) {
e.printStackTrace();
}
}
不確定你是否能夠解決它,但這里有一個例子
final byte[] VALIDATION_MODE = new byte[]{27, 'c', '0', 4}; // Print in validation mode
final byte[] PAPER_FULL_CUT = {0x1d,0x56,0x00}; // Full cut paper
final byte[] PAPER_PART_CUT = {0x1d,0x56,0x01}; // Partial cut paper
public void print(String receiptContent, String printerName) throws IOException {
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
DocPrintJob docPrintJob = selectedPrinter(printerName).createPrintJob();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
outputStream.write(VALIDATION_MODE);
outputStream.write(receiptContent.getBytes());
outputStream.close();
ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
Doc doc = new SimpleDoc(inputStream, flavor, null);
try {
docPrintJob.print(doc, null);
} catch (PrintException e) {
System.out.println("Error:" + e.getMessage());
}
System.out.println("Print Job Finished");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.