impresion java y linux
Publicado por jarflo (3 intervenciones) el 13/08/2007 20:22:28
Tengo el siguiente problema debido a un problema con los driver en linux de una miniprinter no puedo utilizar cups para la impresion en java asi que lo tengo que hacer manualmente con echo cat y /dev/lp0 donde la salida en crudo seria por ejemplo "echo mensaje que quiero se imprima >> /dev/lp0" mi gran problema que tengo al crear el servidor de impresion es que me es imposible que el formato que me llegue de un cliente lo respete sin saltos de linea, por lo que pregunto sugerencias o soluciones dejo un codigo haber si es posible su ayuda
import java.net.*;
import java.io.*;
class servidorim{
public static void main( String args[] ) {
ServerSocket s = null;
DataInputStream sIn;
PrintStream sOut;
Socket cliente = null;
String texto,texto2,f;
int g;
//lectura de archivo de onfiguracion
try {
java.io.BufferedReader lec= new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream("puerto.txt")));
f= lec.readLine();
g=Integer.parseInt(f);
System.out.println(g);
// Abrimos una conexión en el puerto 9999
try {
s = new ServerSocket(g);
} catch( IOException e ) {
System.out.println( e );
}
for(;;){
// Creamos el objeto desde el cual atenderemos y aceptaremos
// las conexiones de los clientes y abrimos los canales de
// comunicación de entrada y salida
try {
cliente = s.accept();
System.out.println(cliente);
sIn = new DataInputStream( cliente.getInputStream() );
sOut = new PrintStream( cliente.getOutputStream() );
System.out.println("me ha llegado una peticion");
// Cuando recibamos datos, los mandamos a imprimir pantalla e impresora
texto = sIn.readLine();
System.out.println(texto);
/*parte impresion*/
String s1 = new String( "echo " );
String s2 = new String( " >> /dev/lp0" );
texto2 = s1.concat( texto );
texto = texto2.concat (s2);
String[] command ={"sh","-c",texto};
Process childs = Runtime.getRuntime().exec(command);
//del for de arriba }
} catch( IOException e ) {
System.out.println( e );
}
}
} catch (IOException exc) {
System.err.println(exc);
System.out.println("Asegurar de tener archivo de configuracion correctamente");
}
import java.net.*;
import java.io.*;
class servidorim{
public static void main( String args[] ) {
ServerSocket s = null;
DataInputStream sIn;
PrintStream sOut;
Socket cliente = null;
String texto,texto2,f;
int g;
//lectura de archivo de onfiguracion
try {
java.io.BufferedReader lec= new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream("puerto.txt")));
f= lec.readLine();
g=Integer.parseInt(f);
System.out.println(g);
// Abrimos una conexión en el puerto 9999
try {
s = new ServerSocket(g);
} catch( IOException e ) {
System.out.println( e );
}
for(;;){
// Creamos el objeto desde el cual atenderemos y aceptaremos
// las conexiones de los clientes y abrimos los canales de
// comunicación de entrada y salida
try {
cliente = s.accept();
System.out.println(cliente);
sIn = new DataInputStream( cliente.getInputStream() );
sOut = new PrintStream( cliente.getOutputStream() );
System.out.println("me ha llegado una peticion");
// Cuando recibamos datos, los mandamos a imprimir pantalla e impresora
texto = sIn.readLine();
System.out.println(texto);
/*parte impresion*/
String s1 = new String( "echo " );
String s2 = new String( " >> /dev/lp0" );
texto2 = s1.concat( texto );
texto = texto2.concat (s2);
String[] command ={"sh","-c",texto};
Process childs = Runtime.getRuntime().exec(command);
//del for de arriba }
} catch( IOException e ) {
System.out.println( e );
}
}
} catch (IOException exc) {
System.err.println(exc);
System.out.println("Asegurar de tener archivo de configuracion correctamente");
}
Valora esta pregunta


0