Я ищу решение для печати файла PDF из приложения Android без отображения диалогового окна.
Я пробовал следующие два варианта.
PrintManager pm = (PrintManager)getSystemService(Context.PRINT_SERVICE); try { PrintDocumentAdapter pda = new PdfDocumentAdapter(this,"/sdcard/PDFTest.pdf"); pm.print("PDF-from-Android-App",pda, new PrintAttributes.Builder().build()); } catch (Exception e) { Log.d(TAG,"Error while Printing." + e.getMessage()); e.printStackTrace(); }
protected void printPDF(String ipAddress, int port) { Socket tcpsocket = null; try { InetSocketAddress inetSocketAddress = new InetSocketAddress(InetAddress.getByName(ipAddress), port); tcpsocket = new Socket(); tcpsocket.connect(inetSocketAddress, 5000 ); } catch (Exception e) { Log.d(TAG,"Invlaid Port Number."); return; } if (tcpsocket != null) { try { InputStream input = new FileInputStream(new File("/sdcard/PDFTest.pdf")); OutputStream outputStream = tcpsocket.getOutputStream(); byte[] buf = new byte[1024]; int bytesRead; while ((bytesRead = input.read(buf)) > 0) { outputStream.write(buf, 0, bytesRead); } outputStream.flush(); outputStream.close(); tcpsocket.close(); }catch (Exception e) { e.printStackTrace(); } } }
Я ищу вариант 2 для моей реализации. Если кто-то реализовал такое решение, пожалуйста, помогите мне. Заранее спасибо.
Не зная, какой принтер или сервер печати работает, кому-либо трудно дать вам варианты.
Я проверю данные производителя о поддерживаемых командах, но все же упомяну здесь три основных принтера и модель, с которой я пытаюсь работать. Canon C5550I III, RICOH MP 171SPF, RICOH SP 5210SF
В общем, подробности того, как разговаривать с принтером, зависят от принтера (производителя и модели). Свяжитесь с производителем, чтобы узнать, как работать с принтерами производителя, и узнать, какие существуют варианты прямого подключения.