2011-06-10 90 views
12

我想編寫一個Android應用程序,它將連接到具有特定IP地址的網絡打印機,然後進行打印。如何通過Android連接網絡打印機?

對於打印我知道我需要爲特定文件類型編寫自己的Postscript,並且連接到網絡對於WIFI不是問題。

如何連接到網絡打印機?

+0

你已經找到了一個解決方案? – Kishore 2012-06-07 09:43:48

回答

1

您可能可以使用lpdspooler,也就是說,如果打印機支持LPR/LPD。如果你可以提供一些關於環境的更多細節(打印機等),我可能會提供更多信息。

+0

測試打印機是EPSON TM-T88III(以太網)。我需要檢查它是否支持LPR/LDP。 – Fallenlight 2011-06-10 15:15:43

+0

https://www-304.ibm.com/support/docview.wss?uid=nas1aeb8bc2140732fb2862569c10078efbb&wv=1 它顯示打印機支持LPR。 – Fallenlight 2011-06-10 15:19:36

+1

我再次查看了lpdspooler,它看起來不像你想要的,但我看到你的打印機確實支持LPR和RAW。我找到[此鏈接](http://code.google.com/p/jprinterface/source/browse/trunk/src/sos/net/print/LPR.java?r=2)到項目的源代碼通過Java中的LPR將作業發送到打印機;我相信它會做你想要的。 – 2011-06-10 15:22:27

0

那麼,你不能直接連接任何設備,因爲你將需要安裝驅動程序。有第三方應用程序,如Google Cloud打印,但無縫與Android工作。

+0

**否**,這是微軟windows的ed方式。事實上,許多**質量好的設備,如打印機,調制解調器,聲卡等,都支持標準通信協議,因此您可以在沒有安裝任何驅動程序的情況下連接**。例如,請參閱已接受的答案。 – Vassilis 2017-07-28 18:49:54

13

任何連接到網絡的設備都將通過它們的IP和端口/插座進行通信。通過telnet或套接字連接並將數據寫入其套接字緩衝區的最簡單方法。

try 
    { 
    Socket sock = new Socket("192.168.1.222", 9100); 
    PrintWriter oStream = new PrintWriter(sock.getOutputStream()); 
     oStream.println("HI,test from Android Device"); 
     oStream.println("\n\n\n"); 
     oStream.close(); 
     sock.close(); 
    } 
    catch (UnknownHostException e) 
    { 
     e.printStackTrace(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
+0

工程就像一個魅力! – Luis 2013-01-28 19:57:13

+0

不適合我嗎?請幫幫我。 – 2013-12-16 10:14:28

+0

我也沒工作 – VVB 2015-03-17 10:03:03

0

只需添加該代碼後onCreate方法

if (android.os.Build.VERSION.SDK_INT > 9) { 
    StrictMode.ThreadPolicy policy = 
     new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(policy); 
} 
相關問題