#android #android-emulator #android-wifi
#Android #android-эмулятор #android-wifi
Вопрос:
Я хочу распечатать файл, используя печать по Wi-Fi в моем приложении для Android.Я отсканировал принтер WiFi, и у меня есть IP-адрес принтера WiFi. Теперь, как я могу перенести файл с телефона Android на принтер, чтобы распечатать его? Я использую следующий код для передачи файла на принтер `public void uploadFile (имя файла){
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:
Используя сокет, вы можете печатать с Android, используя сетевой принтер при подключении по Wi-Fi
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();
Комментарии:
1. можете ли вы сказать мне, как форматировать содержимое, если я хочу напечатать ни одной строки, подобной таблице из 3 столбцов, и ни одной строки, подобной квитанции, я пытаюсь сделать это с помощью n t, но если в каком-либо из моих элементов было больше слов or, все остальные элементы были неуместны
2. я просто хочу обернуть содержимое, как я могу
3. Привет, Ленда, просто форматируй строковую переменную построчно (строки зависят от ширины вашей страницы) и добавляй строку к общей переменной StringBuffer. наконец, отправьте значение строкового буфера на печать (если вам нужно добавить командную строку принтера, также добавьте в класс string buffer) Пример: String sStr = «Это образец файла»; StringBuffer sbFinalString = new StringBuffer(); sbFinalString.append(sStr); sbFinalString.append(» nn»); sStr = «написано venkat»; sbFinalString.append(sStr); Печать (sbFinalString.append(sStr); Печать (sbFinalString. toString()); Надеюсь, это поможет….
4. но для того, чтобы обернуть i в одну колонку, у меня гораздо больше контента
Ответ №2:
Я думаю, вы можете сделать это, не отправляя весь файл целиком, просто выберите строки из файла и установите соединение с устройством WiFi, отправьте текст на устройство, оно его распечатает. Я сделал то же самое с принтером Bluetooth.
Комментарии:
1. : Да, мы можем отправить строку из файла, тогда какой протокол нам нужно использовать? Есть идеи?
2. вы можете использовать http-соединение и отправлять строку с помощью DataOutputSteam.
3. У меня возникли проблемы с сопряжением устройств с использованием Bluetooth. Можете ли вы мне помочь? Я внедрил код с сайта разработчика Android.