Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Seleccionar impresora

Estas en el tema de Seleccionar impresora en el foro de Java en Foros del Web. saludos ya estuve al menos una semana investigando tomando código de aquí y allá y en parte obtuve un adelanto pero al final no sirvió ...
  #1 (permalink)  
Antiguo 04/07/2014, 08:31
Avatar de Gck_Wolf  
Fecha de Ingreso: enero-2011
Mensajes: 11
Antigüedad: 13 años, 3 meses
Puntos: 1
Busqueda Seleccionar impresora

saludos ya estuve al menos una semana investigando tomando código de aquí y allá y en parte obtuve un adelanto pero al final no sirvió mas que una parte. por ahora tengo estas 2 de 3 partes para lo que requiero su ayuda la primera parte es tener una lista de las impresoras que detecta una aplicación java ay creada esta nos devuelve un string que contiene el nombre de la impresora.
la segunda parte es la creación de un archivo de excel que se guarda en la maquina donde se le diga su ubicación

así que tenemos tanto el nombre del archivo así como su ubicación y el nombre de la impresora. necesito u método que use estos dos valores para imprimir el archivo en la impresora que seleccione. ya investigue pero por aora o encuentro nada, en vez de eso encontré el como trasformar en pdf (lo cual si usare pero me urge la imprecion)

este es el código pero aunque manda la orden de imprimir no hace nada con ninguna de las opciones que le doy para imprimir
el archivo queda en cola luego dice que hubo un error por lo que no lo imprime.

public void imprimir(String impresora) {
Exportar(1);
try {
inputStream = new FileInputStream(archivo);
} catch (FileNotFoundException e) {
System.out.println("errror imprecion" + e);
}

DocFlavor docFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc document = new SimpleDoc(inputStream, docFormat, null);

PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet();
AttributeSet aset = new HashAttributeSet();
aset.add(new PrinterName(impresora, null));

PrintService[] defaultPrintService = PrintServiceLookup.lookupPrintServices(null, aset);

DocPrintJob printJob = defaultPrintService[0].createPrintJob();
try {
printJob.print(document, attributeSet);

} catch (PrintException e) {
System.out.println("Error al imprimir "+e);
}
try {
inputStream.close();
} catch (IOException ex) {
Logger.getLogger(exRenglon.class.getName()).log(Le vel.SEVERE, "Existe error al imprimir ", ex);
}

archivo = null;
}

}
  #2 (permalink)  
Antiguo 04/07/2014, 11:49
Avatar de Gck_Wolf  
Fecha de Ingreso: enero-2011
Mensajes: 11
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Seleccionar impresora

EM respondo ami mismo ya lo he logrado depes deingara un poco mas les dejo la respuesta aunque esta muy limitada.

public void imprimir(String impresora) { //impresora es el nombre de la impresora
Exportar(1);//este es mi metodo de exportacion o creacio de archivos
java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.PRINT)) {
try {
try {
Process pr = Runtime.getRuntime().exec("Rundll32 printui.dll,PrintUIEntry /y /n \"" + impresora + "\"");//en este metodo cambia la impresora predeterminada por la que he escogido
} catch (Exception ex) {
System.out.println("Ha ocurrido un error al ejecutar el comando. Error: " + ex);
}
desktop.print(archivo);//archivo es un tipo file que creo el metodo de exportacion
} catch (Exception e) {
System.out.print("El sistema no permite imprimir usando la clase Desktop");
e.printStackTrace();
}
} else {
System.out.print("El sistema no permite imprimir usando la clase Desktop");
}
archivo = null; //la variable file (archivo) la inicializo nula para que no ocupe memoria
}
}


bien gracias por aquellos que se dieron la vuelta pero que no me respondieron y la resto les deseo que esto les sirva a alguien mas

Etiquetas: impresora
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:42.