私は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();
}
その後、私はそれを、具体的thisスレッド以下、CMDでテストが、私はコマンドを実行する「USB001 open.batコピー/ b」が開始しましたちょうど言う:「USB001を上書きするか? (はい/いいえ/すべて) '
ご存知ですか?
そうでない場合は、スレッドで私がリンクされ、なぜ、私は、USB001ファイルを持っていないと言います。 ' copy/bはあなたのcontrを送信するのに完全に有効な方法ですolコマンドをプリンタに送ると動作します。 ' – tomyforever
私は、「開始/分メモ帳open.bat」でキャッシュドロワーを開くことができます。しかし、私はファイルの名前と空白がたくさん印刷されているので、メモ帳を使いたくないので、キャッシュドロワーを開くだけです。 'start'コマンドの構文は、[link](http://www.computerhope.com/issues/ch000932.htm)にあります。 – tomyforever
更新:キャッシュドロワー「LPT1ポートをエミュレートする」を開くことができました。 1番目 - コントロールパネルのプリンタを共有します。 2番目のcmdを管理者としてオープン第3 - NET使用LPT1:\\ [コンピュータ名] \プリンタ。コマンド 'copy/b open.bat lpt1'が動作します。しかし、現金引き出しが開かれても生データは印刷されます。 – tomyforever