Java - imprimir archivos en java

 
Vista:

imprimir archivos en java

Publicado por Juan Pablo (6 intervenciones) el 09/07/2011 18:27:39
Hola gente, haber si m pueden ayudar porq ya estoy perdiendo mucho tiempo en esto! Necesito imprimir desde mi aplicacion Java desktop, archivos office y pdf (doc.,xls,pdf,etc)...y cuando tenga que imprimir que mande a la impresora sin abrir cuadro de dialogo ni nada. He visto Api que trabajan con archivos de office pero solo crean en archivo y guardan el archivo, pero nunca lo imprimen. Me ayudan?un abrazo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

imprimir archivos en java

Publicado por Octavio (74 intervenciones) el 11/07/2011 06:01:26
Juan Pablo, te invito a que veas algo de iReport junto con java, no es difícil de usar y hay mucha información dando vuelta por Internet.

Si ya tienes el archivo creado puedes solamente imprimirlo, mira algunas de estas paginas que recomienda el mago Google: http://www.google.com.ar/search?sourceid=chrome&ie=UTF-8&q=imprimir+archivo+doc+java#sclient=psy&hl=es&source=hp&q=imprimir+documento+desde+java+-javascript&aq=f&aqi=&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=824e27f4b9e1cd63&biw=944&bih=927

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Juan pablo (6 intervenciones) el 11/07/2011 13:07:02
Gracias por la respuesta amigo...si, se usar el Ireport por porq lo que se...tengo entendido que IREPORT construye reportes en base a unos datos predefinidos y luego genera el documento. Mi problema pasa que ya tengo el documento en un lugar fisico y debo imprimirlo directamente. Estuve chequeando la info del IREPORT (entre otros generadores de reportes) y puedo conseguir solucion alguna. Si sabes como hacerlo, dime como hacerlo . Cabe aclarar que no es una interfaz web. Es una aplicacion desktop lo que estoy trabajando. Desde ya muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Aitor (1 intervención) el 11/07/2011 13:47:45
Hola,

Prueba a utilizar el JRPrintServiceExporter, algo parecido al siguiente código:

JRPrintServiceExporter exporter = null;
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet ();
printRequestAttributeSet. add (MediaSizeName.ISO_A4);
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet ();
printServiceAttributeSet. add (new PrinterName (NombreImpresora, null));

exporter = new JRPrintServiceExporter ();
exporter.setParameter (JRPrintServiceExporterParameter. PRINT_REQUEST_ATTRIBUTE_SET,
printRequestAttributeSet);
exporter.setParameter (JRPrintServiceExporterParameter. PRINT_SERVICE_ATTRIBUTE_SET,
printServiceAttributeSet);
exporter.setParameter (JRPrintServiceExporterParameter. DISPLAY_PAGE_DIALOG,
Boolean.FALSE);
exporter.setParameter (JRExporterParameter.INPUT_FILE_NAME, "file.pdf");
exporter.exportReport ();


Necesitarás descargarte las librerías e incluirlas en tu classpath. Yo ahora estoy intentando buscar algo similar para poder enviar ficheros por fax pero me temo que esto será más complicado. :-)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Juan pablo (6 intervenciones) el 11/07/2011 14:44:58
Estimado, buen ayuda...probe tu codigo y (por lo que entendi) no puede cargar el archivo , en este caso un archivo de ffice, este es el error arrojado:
"net.sf.jasperreports.engine.JRException: Error loading object from file : C:\prueba2.doc"
lo estare cargando mal?
Lo que necesito es simple: tomar un archivo (.doc,xls,pdf o lo que sea) y mandar a imprimir sin saber lo que contiene el archivo.
Por lo que entiendo de tu codigo, Intenta hacer eso no? Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

imprimir archivos en java

Publicado por Octavio (74 intervenciones) el 11/07/2011 18:38:20
Juan encontre una solucion !!!!!!!!!! :D

Yo utilice este codigo con documentos de Word, excel y PDF y funciona.

java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
java.io.File fichero = new java.io.File("C:/doc.doc");
if (desktop.isSupported(Desktop.Action.PRINT)){
try {
desktop.print(fichero);
} 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");
}

Lo que se hace es utilizar el PRINT nativo del sistema operativo, con lo cual necesita por ejemplo para imprimir un archivo doc, tener instalado el office u openOffice.

Saludos y espero que resuelva tu problema, nos avisas si ha funcionado

OctiCoCo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Juan pablo (6 intervenciones) el 11/07/2011 18:46:25
Es bueno esto. Anda perfecto. Utiliza el print nativo...pero ¿Como podria hacer para indicarle al sistema operativo "otra impresora"(una que este en red por ejemplo) sin que salga impreso por la que viene por predeterminada?
Te detallo mas mi problema, porq no lo mencione anteriormente. Necesito leer una base de datos donde estan por un lado los archivos a leer en un espacio fisico (se almacena en la BD , el path del archivo) y por el otro lado , la direccion de la impresora a imprimir.
Se entiende? Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

imprimir archivos en java

Publicado por Octavio (74 intervenciones) el 11/07/2011 18:59:05
Bueno por lo que he visto Desktop no permite seleccionar la impresora, solamente envia a imprimir por la impresora predeterminada, con lo cual se me ocurre cambiar la impresora predeterminada a la hora de imprimir el documento, lo puedes realizar de la siguiente manera: (todo el codigo junto, cambiar la impresora e imprimir)

java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
java.io.File fichero = new java.io.File("C:/doc.doc");
if (desktop.isSupported(Desktop.Action.PRINT)){
try {
try{
String nombreImpresora = "HP Color LaserJet CP1215"; //dato a modificar segun la impresora
Process pr = Runtime.getRuntime().exec("Rundll32 printui.dll,PrintUIEntry /y /n \""+nombreImpresora+"\"");
}catch(Exception ex){
System.out.println("Ha ocurrido un error al ejecutar el comando. Error: "+ex);
}
desktop.print(fichero);
} 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");
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Juan pablo (6 intervenciones) el 11/07/2011 19:51:17
anda de 10, muchas gracias....sinceramente me salva y me saca del apuro....aunque voy a seguir investigando la manera de enviar archivos, sin que se abra la ventana de cada programa.. que abre el JDESKTOP.(porque si tengo que procesar 10 archivos, todos de diferentes formatos...va a qedar un poco mal visto que se abran todos lo programas). Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Julian Quiroz (1 intervención) el 06/05/2013 17:11:33
Yo se como cmplementar tu código para que puedas elegir la impresora..

quedaria asi..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void imprimir(String rutaDoc)
{
       PrinterJob job = PrinterJob.getPrinterJob();
       job.printDialog();
       String impresora=job.getPrintService().getName();
 
       //ESTE ES TU CÓDIGO
       java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
       java.io.File fichero = new java.io.File(rutaDoc);
       if (desktop.isSupported(Desktop.Action.PRINT)){
            try {
              try{
                 Process pr = Runtime.getRuntime().exec("Rundll32 printui.dll,PrintUIEntry /y /n \""+impresora+"\"");
                  }catch(Exception ex){
                    System.out.println("Ha ocurrido un error al ejecutar el comando. Error: "+ex);
                  }
            desktop.print(fichero);
           } 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");
}
}


gracias al job.printDialog(); puedes elegir una impresora y sacar el nombre.
Si quisieras imprimir mas de un documento en el mismo proceso, bastaria con enviarle un ARRAY de direcciones de los documentos que desees imprimir, y despues de elegir la impresora, recorrer un ciclo para imprimir cada una de estas direcciones =D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Warlock (1 intervención) el 20/08/2013 18:05:18
Estimados:

Una maravilla!!!, funcionó a la primera

Muuuchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por carlos (1 intervención) el 05/05/2016 02:19:05
muchas gracias por el codigo va muy bien pero quiero saber si hay alguna forma de almacenar el nombre de la impresora a la cual se le envio el archivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Martin (1 intervención) el 03/08/2016 08:11:44
Hola -... primero muchísimas gracias por tu aporte!! ... solo me queda una duda ... en caso de no encontrar la impresora con ese nombre como podría obtener ese error? ... de antemano muchas gracias]!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por jimmy (2 intervenciones) el 05/03/2012 11:54:29
heyyyyyyyyyyy graciasssssss
estaba embalado y me funciono de una .......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por AsusB (1 intervención) el 30/10/2013 14:48:22
Buenos días! Muy bueno el código, por el try: // try{ Process pr = Runtime.getRuntime().exec("Rundll32 printui.dll,PrintUIEntry /y /n \""+impresora+"\""); }catch(Exception ex){ System.out.println("Ha ocurrido un error al ejecutar el comando. Error: "+ex); } // en la linea Process pr = Runtime.getRuntime().exec("Rundll32 printui.dll,PrintUIEntry /y /n \""+impresora+"\""); eso significa que solo es vaildo para Windows? Como seria el codigo para que el programa cumpla la misma funcion (imprimir cualquier archivo) que sea compatible para todos los sistemas operativos que cuenten con la JVM?

Un abrazo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

imprimir archivos en java

Publicado por Camilo (62 intervenciones) el 29/04/2014 18:54:07
Buenos días,

Tengo un pequeño problema con esta forma de imprimir ya que no toma las dimensiones que están predeterminadas en la configuración de la impresora, siempre imprime demasiado grande, hay alguna opción en la que le pueda definir las dimensiones de impresión.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Carlos (1 intervención) el 29/11/2014 06:13:12
Disculpa y se puede saber cuantas paginas se están mandando a imprimir? o poner que se impriman ciertas paginas del documento?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por emmartin (1 intervención) el 04/11/2015 14:25:55
Hola yo necesito imprimir un pdf, pero el código de Octavio me da el siguiente error: java.awt.HeadlessException
Os pasa a alguno??
Sabéis a que se debe?? Como solucionarlo? La verdad esto me esta costando mucho tiempo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

imprimir archivos en java

Publicado por Octavio (74 intervenciones) el 06/05/2016 05:10:38
La verdad que hace rato no uso nada de esta manera, sigo usado IREPORT, pero para que te pueda ayudar alguien deberías poner más información sobre tu código, ya que con solo indicar el error va a ser complejo saber de donde viene el problema, de ese modo te podrán ayudar... si tienes suerte, porque este tema es bastante viejo...

Ojalá puedas resolver el problema.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir archivos en java

Publicado por Fenix (1 intervención) el 10/06/2016 19:48:09
hola gente!!
alguien puede ayudarme...necesito sacar la informacion de un fichero y enviarla a reporte.. he trabajado reportes con base de datos pero no con ficheros...Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar