2016-05-01 2 views
1

Я пытаюсь отправить некоторые файлы (pdf-файлы) на сетевой принтер с помощью программы Android, которую я разрабатываю, но принтер печатает случайные символы вместо фактического документа. Используя другое приложение, я смог распечатать его на том же принтере, используя приложение «общий привод для принтера.Я не нашел драйверов принтера для Android, поэтому мне было интересно, является ли это просто псевдонимом или ., если существуют общие drviers я могу установить на Android использовать беспроводные принтерыОбщий драйвер принтера - Android

код, я использую для отправки файла на принтер:

Socket socket = new Socket(); 
try { 
    socket.connect(new InetSocketAddress(IP, Port (9100)), 5000); 
    BufferedOutputStream bos; 

    bos = new BufferedOutputStream(socket.getOutputStream()); 
    InputStream in = new FileInputStream(new File (fileName)); 

    int c; 
    byte[] bytes = new byte[1024]; 

    while ((c = in.read(bytes)) != -1) { 
     bos.write(bytes, 0, c); 
    } 

    bos.flush(); 
    bos.close(); 
    socket.close(); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 

Благодаря

ответ

1

Android имеет свой собственный printing framework, который доступен на Android 4.4 (уровень API 19) в палатах.

Однако, если вместо этого вы хотели бы отправить файл непосредственно на принтер, файл должен был бы быть преобразованы в эмуляции, который принтер понимает, как

PCL6, BR-Script 3, IBM Pro-Printer XL, Epson FX-850 

эмуляция ваши опоры принтера будут доступны в документации по вашему принтеру.

Привод приводов общего привода работает, преобразуя PDF в изображение, а затем переводит это изображение в эмуляцию, поддерживаемую вашим принтером, и отправляет ее в виде байтов на принтер.

+0

Спасибо за информацию. Однако как некоторые приложения (например, PrinterShare) имеют драйвер принтера по умолчанию, который работает практически на любом принтере? –

+0

Посмотрите на [Общий плагин для принтера - CUPS] (https://play.google.com/store/apps/details?id=org.cups.android) на PlayStore и его источник в [github] (https: //github.com/pelya/android-print-plugin-cups). Это дает хороший пример того, как это делается на Android с помощью чашек и ghostscript для различных принтеров. – agomes

+0

Спасибо @agomes. Я считаю, что это то, что я искал. –

0

Android имеет «печать! драйверов ", но только через свой собственный printing framework, а не для прямой связи с принтером, которую вы выполняете.