我需要用cmd打開一個錢箱。我從Java開始(與我的應用程序),但我沒有找到有關類的詳細信息,以及它們如何與Windows端口進行交互,所以我無法使它工作。這是我試過(既不是錯誤既不是開錢箱)的方法:如何發送命令到USB打印機?
public void cashdrawerOpen() {
String code1 = "27 112 0 150 250"; //decimal
String code2 = "1B 70 00 96 FA"; //hexadecimal
String code = "ESCp0û."; //ascii
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
System.out.println(service.getName());
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
DocPrintJob pj = service.createPrintJob();
byte[] bytes;
bytes=code2.getBytes();
Doc doc=new SimpleDoc(bytes,flavor,null);
try {
pj.print(doc, null);
} catch (PrintException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void cashdrawerOpen2(){
String code1 = "27 112 0 150 250";
String code2 = "1B 70 00 96 FA";
String code = "ESCp0û.";
FileOutputStream os = null;
try {
os = new FileOutputStream("USB001:POS-58");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
PrintStream ps = new PrintStream(os);
ps.print(code1.getBytes());
ps.close();
}
然後,我開始用CMD測試,下面具體this線程,但是當我執行命令「拷貝/ B open.bat USB001」它只是說:'覆蓋USB001? (是/否/全部)'
任何想法?
我以爲命令發送open.bat到USB001端口,我沒有一個USB001文件,如果不是的話,爲什麼在我掛線說:「複製/ b是發送你的控制的完全有效的方式ol命令打印機,它應該工作。 」。 – tomyforever
我使用'start/min notepad open.bat'實現打開錢箱。但我不想使用記事本,因爲它會打印文件的名稱和大量的空白區域,我只需要打開錢箱即可。 'start'命令的語法可以在這裏找到:[link](http://www.computerhope.com/issues/ch000932.htm)。 – tomyforever
更新:我設法打開現金抽屜'模擬'LPT1端口。第一 - 在控制面板上共享打印機。第二個打開cmd作爲管理員第三 - NET USE LPT1:\\ [Computer-Name] \ Printer。然後命令'copy/b open.bat lpt1'將起作用。但是當錢箱打開時它仍然會打印原始數據。 – tomyforever