android - Wifi打印机无法打印Android页面

标签 android sockets printing wifi

我使用以下代码:

Socket client = new Socket(etIp.getText().toString(), 515);

String printText = "This is a print test from Wifi";
byte[] mybytearray = printText.getBytes(); 


OutputStream outputStream = client.getOutputStream();

outputStream.write(mybytearray, 0, mybytearray.length); //write file to the output stream byte by byte
outputStream.flush();
outputStream.close();
client.close();

套接字连接已打开,并且在完成输出流中的数据写入过程时也不异常(exception)。但是打印机无法弹出页面。

请帮助我我做错了什么。

最佳答案

我认为您需要发送更多数据以使其弹出并通知打印机。

对于Epson L355,我在字符串的末尾附加了一个字节数组。

byte[] EjectByteArray = {0X00, 0X0D, 0X0C, 0X1B, 0X40, 0X1B, 0X28, 0X52, 0X08, 0X00, 0X00, 0X52, 0X45, 0X4D, 0X4F, 0X54, 0X45, 0X31, 0X4C, 0X44, 0X00, 0X00, 0X1B, 0X00, 0X00, 0X00, 0X1B, 0X40, 0X1B, 0X28, 0X52, 0X08, 0X00, 0X00, 0X52, 0X45, 0X4D, 0X4F, 0X54, 0X45, 0X31, 0X4C, 0X44, 0X00, 0X00, 0X4A, 0X45, 0X01, 0X00, 0X00, 0X1B, 0X00, 0X00, 0X00};

您可能需要运行端口嗅探器,并 try catch 打印完成后传递的最后一个字节数组。它会为您提供有关如何发送弹出命令的线索。这是我在Epson L355上使用端口9100对我起作用的一项
outputStream.write(mybytearray, 0, mybytearray.length); 
outputStream.write(EjectByteArray, 0, EjectByteArray.length); 
outputStream.flush();
outputStream.close();
client.close();

关于android - Wifi打印机无法打印Android页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17418341/

相关文章:

java - 非阻塞数据报套接字?

javascript - 使用数据 session 变量时打印预览为空白。局部变量工作正常

android - 使用热敏打印机进行 Google 云打印

java - Gson 预期为 BEGIN_ARRAY,但对于类型 Byte[] 却是 BEGIN_OBJECT

node.js - socket.io 客户端未连接到在 socket.io 中创建的 azure 服务器

android - 在 Android 中暂停和恢复录音

java - 为什么 ObjectInputStream readObject() 抛出 EOF 异常

javascript - 服务器网页窗口-打开+打印+关闭

android - 使用 <RadioGroup> 设置所有 <RadioButton> checked false

java - 如何在多同步 Realm 中分离我的 Realm 对象?