【问题标题】:Wifi printer not printing the pages androidWifi打印机不打印页面android
【发布时间】:2013-07-02 05:57:16
【问题描述】:

我使用了以下代码:

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();

套接字连接打开,在输出流中完成写入数据的过程中没有异常。但打印机不弹出页面。

请帮助我做错了什么。

【问题讨论】:

  • 为什么你认为这会起作用?您正在将原始文本写入打印机。我不认为他们中的任何一个都是这样工作的。他们通常会说 PCL 之类的语言。
  • @GabeSechan 此代码引用自 link,适用于 .txt 文件。他还写了原始文本。
  • 我写了 4 年的打印机固件(尽管是十年前),我工作的任何一台打印机都不会打印出发送给它的原始文本。它可能适用于某些模型,但我不希望它是通用的。
  • @GabeSechan 我使用的是佳能 PIXMA MX430 打印机。我必须在输出流上编写任何特定于打印机的代码吗?
  • @Parveen 你有什么解决办法吗?

标签: android sockets printing wifi


【解决方案1】:

我认为您需要发送更多数据才能将其弹出并让打印机知道。

对于 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};

您可能需要运行端口嗅探器并尝试捕获打印完成后传递的最后一个字节数组。它将为您提供有关如何发送弹出命令的线索。这是我在 Epson L355 上使用端口 9100 的作品

outputStream.write(mybytearray, 0, mybytearray.length); 
outputStream.write(EjectByteArray, 0, EjectByteArray.length); 
outputStream.flush();
outputStream.close();
client.close();

【讨论】:

    【解决方案2】:

    在行尾添加\n。这对我有用

    String printText = "Finally its working \n";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多