Imprima un archivo PDF en una impresora usando PrintWriter a través de una conexión de socket

Tengo que imprimir un archivo pdf usando una impresora con una dirección IP específica. Puedo imprimir un texto específico pero quiero imprimir un archivo o un texto sintáctico html.

Mi código:

try { Socket sock = new Socket("192.168.0.131", 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(); } 

Indique también el motivo de la votación a la baja

Editar

Mucha gente está sugiriendo sobre PDLs pero cómo convertir el pdf a PDL?

Los datos enviados a una impresora deben estar en Idiomas de descripción de página (PDL), idioma comprador de impresora. Aquí usted puede encontrar una comprensión básica de aquellos. La cadena ASCII es entendida por la mayoría de las impresoras, por eso es posible imprimir la cadena. Pero cuando se trata de formatos de documentos complejos como (PDF, Excels, página HTML, etc), usted tiene que convertir el documento en uno de los PDL. Los PDL más comunes con los que he trabajado son PostScript (PS) y PCL (Printer Command Language).

Ahora, para imprimir un PDF con un formato exacto (para el que necesita una solución), debe convertir el documento PDF a PCL o Postscript y enviar los datos PCL o postscript a la impresora. Puede utilizar ghostscript para convertir su PDF a PS o PCL.

No he hecho exactamente lo que está tratando de hacer, pero creo que lo que he explicado anteriormente es el comienzo para usted.

Yo estaría muy interesado en saber si usted es capaz de hacerlo. Házmelo saber.

Necesita usar la biblioteca PDFBox que también está disponible para Android.

Usted puede utilizarlo para obtener el texto PDF y luego utilizarlo para su propósito –

Una muestra de java –

 import java.io.File; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; import org.apache.pdfbox.text.PDFTextStripperByArea; public class myProgram{ public static void main(String[] args) try { PDDocument document = null; document = PDDocument.load(new File("my_file.pdf")); document.getClass(); if (!document.isEncrypted()) { PDFTextStripperByArea stripper = new PDFTextStripperByArea(); stripper.setSortByPosition(true); PDFTextStripper Tstripper = new PDFTextStripper(); String st = Tstripper.getText(document); System.out.println("Text:" + st); } } catch (Exception e) { e.printStackTrace(); } } 

PdfBox-Para-Android

O utilizar MuPDF

Como se sugirió anteriormente, puede probar pdfbox para extraer texto, pero también necesita preservar el formato especialmente, alrededor de las tablas para las cuales pdftron parece ser una mejor opción. Ofrece muchos apis convenientes para lograr lo mismo. Puede consultar su sitio para ver ejemplos totalmente funcionales.

Nota: No estoy representando pdftron ni trabajo para ellos.

  • Dispositivos Android conectados con NSD, cómo enviar mensajes utilizando sockets (Client-Client)?
  • Transferencia de archivos de socket android
  • Lo que puede causar un error socket () "Permiso denegado"?
  • Android - no se pudo instalar * smartsocket * listener
  • Enviar y recibir datos a través de Bluetooth
  • Android: socket bluetooth se niegan a conectarse correctamente
  • ¿Cuál es la diferencia entre DataOutputStream y ObjectOutputStream?
  • Android: Capturar imágenes y enviarlas a través de Socket a un applet
  • Aplicación de Android que utiliza Socket para enviar y recibir mensajes:
  • Android BluetoothSocket OutputStream escribe bloques de forma infinita
  • Dispositivo Android (excepto la nota de galaxia 2) no puede obtener paquetes UDP
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.