到目前为止我所拥有的是以下代码:
FileInputStream fin =new FileInputStream(filename);
DocFlavor df = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc d = new SimpleDoc(fin, df, null);
PrintService P = PrintServiceLookup.lookupDefaultPrintService();
if (P != null) {
DocPrintJob job = P.createPrintJob();
job.print(d, null);
}
fin.close;
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但如果包含命令的文件打印机不解释命令,它会继续打印文件的确切字符串内容.那么如何向爱普生收据打印机发送命令?
由于已经想通了,命令可能直接不ESC/POS格式发送,但你需要解释的代码为十六进制在你的Java代码,并从一个文件或字符串发送到打印机,因为我张贴的方式,无论是.例如,而不是通过以下方式初始化Epson收据打印机:
PRINT #1, CHR$(&H1B);"@";
Run Code Online (Sandbox Code Playgroud)
并在收据打印机中剪切纸张代码可能是:
PRINT #1, CHR$(&H1D);"V";CHR$(1);
Run Code Online (Sandbox Code Playgroud)
所以这就是它对我有用的方式.
char[] initEP = new char[]{0x1b, '@'};
char[] cutP = new char[]{0x1d,'V',1};
String Ptxt= new String(initEP)+ " text data \n \n \n"+ new String(cutP);
Run Code Online (Sandbox Code Playgroud)
代替
Doc d = new SimpleDoc(new FileInputStream(filename), df, null);
Run Code Online (Sandbox Code Playgroud)
使用
InputStream pis = new ByteArrayInputStream(Ptxt.getBytes());
Doc d = new SimpleDoc(pis, df, null);
Run Code Online (Sandbox Code Playgroud)
然而,它可能是一种发送代码作为其命令格式的方法,但到目前为止绝对不能这样做.并且不确定它是否可以从java完成.
| 归档时间: |
|
| 查看次数: |
14742 次 |
| 最近记录: |