前提:设置好打印机无线网络,通过浏览器能够正常访问打印机设置页面
访问打印机设置页面
直接在浏览器输入打印机ip,我这里配置的是192.168.0.123,如果打印机无线网络未配置成功则访问不成功,一下是我的打印机设置页面
设置打印语言
切换到Configuration->Printer->Web Shell参考地址:https://support.honeywellaidc.com/s/article/How-to-select-a-Command-Language-on-Intermec-PB-series-LCD-portable-printers
“Printer”>“Web Shell”
- 点击“CommandLanguage”下拉菜单并选择所需的命令语言
- 点击此页面底部的按钮 - Submit setup
- 继续在打印机Web管理控制台的“配置”选项卡上,转至“网络管理”>“TCP / IP”
- 如果选择了“配置方法”(在页面顶部)尚不是“DHCP”,请记下网络设置,并从“配置方法”下拉列表中选择“DHCP”。
- 如果“配置方法”已更改,请单击此页面底部的按钮 - 提交TCP / IP设置
- 一旦Web管理控制台重新加载,重新启动打印机,进入“配置”选项卡>“Web Shell”,然后单击Reboot。
- 打开打印机后等待30秒,打印机应该有足够的时间完全启动。命令语言 - 可能是“IPL”,“Fingerprint”或“Direct protocol” - 固件版本应显示在打印机的前面板显示屏上。
此时打印机设置已经完成,接下来处理打印内容
- 使用条码打印软件打印rpn文件
- 编写Android代码
- 使用Socket连接打印机
String ip = "192.168.0.123";
int port = 9100;
try {
Socket socket = new Socket(ip,port);
if(socket.isConnected()){
Log.d("MainActivity", "连接成功");
}else{
Log.d("MainActivity", "连接失败");
}
} catch (IOException e) {
e.printStackTrace();
}
- 将.rpn文件放入assets目录中,通过io读取出来byte[]
try {
InputStream inputStream = null;
try {
inputStream = getResources().getAssets().open("test3.prn");
} catch (IOException e) {
e.printStackTrace();
}
byte[] buffer = new byte[1024];
int len;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((len = inputStream.read(buffer)) > -1) {
baos.write(buffer, 0, len);
}
baos.flush();
baos.close();
} catch (IOException e) {
Log.e("monty",e.toString());
e.printStackTrace();
}
```
- 使用Socket发送byte[]进行打印
try {
if (outputStream == null) {
Toast.makeText(mContext, "请先连接上打印机", Toast.LENGTH_SHORT).show();
return;
}
outputStream.write(data, 0, data.length);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
Log.e("", "printText " + e);
}