Listar impresoras del lado del cliente (Java)
Publicado por Deika (3 intervenciones) el 14/09/2018 19:30:17
Buenas tardes!
Tengo una aplicación corriendo en servidor y quiero poder detectar las impresoras que estén accesibles desde un ordenador xs.
Es decir, del lado del cliente quiero que se listen las impresoras y actualmente, como la aplicación la estoy corriendo desde un servidor, me muestra las impresoras que están accesibles desde el servidor.
La idea es que desde donde se vaya a acceder a la aplicación, o sea desde un ordenador xs, se puedan listar sus respectivas impresoras.
No se si un camino puede ser obteniendo la dirección ip de ese ordenador pero la verdad no he podido encontrar la manera de resolverlo con lo que tengo que viene siendo esto:
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
List <String> Impresoras= new ArrayList<>();
// -- ver los atributos de las impresoras...
for (PrintService printService : services) {
Impresoras.add(printService.getName());
System.out.println(" ---- IMPRESORA: " + printService.getName());
PrintServiceAttributeSet printServiceAttributeSet = printService.getAttributes();
System.out.println("--- atributos");
// todos los atributos de la impresora
Attribute[] a = printServiceAttributeSet.toArray();
for (Attribute unAtribute : a) {
System.out.println("atributo: " + unAtribute.getName());
}
System.out.println("--- viendo valores especificos de los atributos ");
// valor especifico de un determinado atributo de la impresora
System.out.println("PrinterLocation: " + printServiceAttributeSet.get(PrinterLocation.class));
System.out.println("PrinterInfo: " + printServiceAttributeSet.get(PrinterInfo.class));
System.out.println("PrinterState: " + printServiceAttributeSet.get(PrinterState.class));
System.out.println("Destination: " + printServiceAttributeSet.get(Destination.class));
System.out.println("PrinterMakeAndModel: " + printServiceAttributeSet.get(PrinterMakeAndModel.class));
System.out.println("PrinterIsAcceptingJobs: " + printServiceAttributeSet.get(PrinterIsAcceptingJobs.class));
Aquí obtengo el servicio que me listas las impresoras pero esto lo hace en donde se corra la aplicación.
Si me podrían dar una pista se los agradecería mucho pues no se mucho de Java y estoy probando con ejemplos.
Saludos!
Tengo una aplicación corriendo en servidor y quiero poder detectar las impresoras que estén accesibles desde un ordenador xs.
Es decir, del lado del cliente quiero que se listen las impresoras y actualmente, como la aplicación la estoy corriendo desde un servidor, me muestra las impresoras que están accesibles desde el servidor.
La idea es que desde donde se vaya a acceder a la aplicación, o sea desde un ordenador xs, se puedan listar sus respectivas impresoras.
No se si un camino puede ser obteniendo la dirección ip de ese ordenador pero la verdad no he podido encontrar la manera de resolverlo con lo que tengo que viene siendo esto:
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
List <String> Impresoras= new ArrayList<>();
// -- ver los atributos de las impresoras...
for (PrintService printService : services) {
Impresoras.add(printService.getName());
System.out.println(" ---- IMPRESORA: " + printService.getName());
PrintServiceAttributeSet printServiceAttributeSet = printService.getAttributes();
System.out.println("--- atributos");
// todos los atributos de la impresora
Attribute[] a = printServiceAttributeSet.toArray();
for (Attribute unAtribute : a) {
System.out.println("atributo: " + unAtribute.getName());
}
System.out.println("--- viendo valores especificos de los atributos ");
// valor especifico de un determinado atributo de la impresora
System.out.println("PrinterLocation: " + printServiceAttributeSet.get(PrinterLocation.class));
System.out.println("PrinterInfo: " + printServiceAttributeSet.get(PrinterInfo.class));
System.out.println("PrinterState: " + printServiceAttributeSet.get(PrinterState.class));
System.out.println("Destination: " + printServiceAttributeSet.get(Destination.class));
System.out.println("PrinterMakeAndModel: " + printServiceAttributeSet.get(PrinterMakeAndModel.class));
System.out.println("PrinterIsAcceptingJobs: " + printServiceAttributeSet.get(PrinterIsAcceptingJobs.class));
Aquí obtengo el servicio que me listas las impresoras pero esto lo hace en donde se corra la aplicación.
Si me podrían dar una pista se los agradecería mucho pues no se mucho de Java y estoy probando con ejemplos.
Saludos!
Valora esta pregunta


0