2011-11-08 55 views
3

我想在我的android應用程序中使用無線打印打印文件。我已掃描wifi打印機,我有wifi打印機的IP地址。現在我怎麼能從android手機傳輸文件到打印機來打印它?我使用以下代碼將文件傳輸到打印機`public void uploadFile(File fileName){在Android的無線打印

 FTPClient client = new FTPClient(); 
    try { 
     client.connect(FTP_HOST,21); 
     client.login(FTP_USER, FTP_PASS); 
     client.setType(FTPClient.TYPE_BINARY); 
     client.changeDirectory("/"); 
     client.upload(fileName, new MyTransferListener()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     try { 
      client.disconnect(true);  
     } catch (Exception e2) { 
      e2.printStackTrace(); 
     } 
    } 

}` 

任何人都可以幫助我嗎?提前致謝。

回答

1

我認爲你可以做到這一點,而不發送整個文件,只需從文件中選擇字符串,並與WiFi設備連接,發送文本到設備,它將打印它。我用藍牙打印機做了同樣的事情。

+0

使用網絡打印機打印:是的,我們可以從文件發送字符串,則該協議我們需要使用?任何想法 ? –

+0

您可以使用http連接,並使用DataOutputSteam發送字符串。 – Lucifer

+0

okey,謝謝,讓我試試看。 –

2

使用插槽你可以在Android的WiFi連接

Socket objSocket = new Socket(); 
String sIP = "192.168.1.10" 
String sPort = "9100" 
InetSocketAddress objEndPoint = new InetSocketAddress(sIP, Integer.parseInt(sPort)); 

DataOutputStream objOutputStream; 

objSocket.connect(objEndPoint, 3000); 

objOutputStream = new DataOutputStream(objSocket.getOutputStream()); 
objOutputStream.write(("Test Print").getBytes()); 

objOutputStream.close(); 
objSocket.close(); 
+0

你可以告訴我如何格式化內容,如果我想打印像3列的表格和沒有像收據行,我試圖用\ n \ t這樣做,但如果我的任何項目有更多或字它錯位所有其他項目 – unkown

+0

我只是想包裝內容我怎麼可以 – unkown

+0

Hai Lenda,只是格式化字符串變量逐行(線捍衛你的頁面寬度),並追加字符串到常見的StringBuffer變量。最後將字符串緩衝區的值發送給打印機(如果需要添加打印機命令字符串,也會附加到字符串緩衝區類中)。例如:String sStr =「這是一個示例文件」; StringBuffer sbFinalString = new StringBuffer(); sbFinalString.append(SSTR); sbFinalString.append( 「\ n \ n」); sStr =「由venkat書寫」; sbFinalString.append(SSTR);打印(sbFinalString.toString());希望這會有所幫助.... – Venkat