AYUDA!!! Seleccionar Impresora con JasperPrintManager!!!

2,181 views
Skip to first unread message

Jose Casalis

unread,
Aug 15, 2007, 1:21:04 PM8/15/07
to JavaSOS
Hola, alguien sabe como seleccionar la impresora predeterminada con
JasperPrintManager?, lo necesito para imprimir unos comprobantes en la
impresora directamente, sin mostrar ningún diálogo. Hay alguna forma
de hacerlo?

con esto:

JasperPrint
jasperPrint=JasperFillManager.fillReport(nombreArchivo,parametro,conexion);
JasperPrintManager.printReport(jasperPrint, false);

me imprime en la primera impresora que tengo instalada, y necesito que
si o si imprima en la predeterminada y probé exportarlo con
JRExporter, pero tampoco puedo, me joden los márgenes.

Ha, por cierto, el tamaño del comprobante es de 80 * 127 mm.

POR FAVOR, ALGUIEN SI LO SABE!!! Estoy demorando un proyecto por
esto!!!!

GRACIAS A TODOS!!!!!!!!

Hernan Yamakawa

unread,
Aug 16, 2007, 9:05:45 AM8/16/07
to JavaSOS
Hola Jose que tal, hace poco me top=E9 con el mismo problema, ac=E1 te
dejo el link de donde saque info al respecto, yo lo implement=E9 de
esa
manera y funcion=F3 correctamente. Igual deber=EDas ver de que forma
te
conviene guardar info de la impresora por la cual quer=E9s imprimir
para
luego poder seleccionarla automaticamente cada vez que realizas una
impresi=F3n.

http://blog.marcnuri.com/blog/default/2007/03/22/Choosing-a-printer-program=
matically-in-Jasper-Reports

Espero que sirva.

Marc

unread,
Aug 17, 2007, 9:50:14 AM8/17/07
to JavaSOS
Buenas tardes,
Soy el autor del mencionado artículo. Si necesitáis cualquier
aclaración o tenéis alguna duda al respecto (el artículo está en
inglés), no dudéis en publicar un comentario o en mandarme un e-mail.
Me alegra ver que sirve de ayuda.
Resumiendo, lo que el código hace es inspeccionar todas las impresoras
que hay instaladas en el SO y si alguna concuerda con el nombre
especificado, la pasa como parametro a jasperReports. Como veréis, en
el código también se especifica el número de páginas que se desea
imprimir o el formato del papel (útil para imprimir etiquetas, por
ejemplo.)
Un Saludo.
--
Marc Nuri

Jaime Galindo

unread,
Aug 17, 2007, 5:00:43 PM8/17/07
to jav...@googlegroups.com
Marc, yo todavía no he tenido el tiempo para investigar sobre Jasper Report.

Y sin embargo, ya me toco darme duro con la api javax.print de java.
A empujones me toco ir averiguando como era la forma de operar de esta api.

He hecho reportes a mi criterio complicados porque manejo calculos,
condicionantes para imprimir o no un campo, etc, etc.

Yo he aprendido mucho de tu articulo. Pero no he logrado entender esa parte
de el manejo de numero de paginas que deseas imprimir. Como lo haces?

Y si no es mucha la molestia, alguien que me pueda dar un buen sitio en
español o ingles donde salga de manera sencilla como usar Jasper Report como
herramienta y ejemplos desde java.

Gracias por tu valiosa ayuda.


-----Mensaje original-----
De: jav...@googlegroups.com [mailto:jav...@googlegroups.com] En nombre de
Marc
Enviado el: viernes, 17 de agosto de 2007 7:50
Para: JavaSOS
Asunto: [JavaSOS] Re: AYUDA!!! Seleccionar Impresora con
JasperPrintManager!!!

Marc

unread,
Aug 20, 2007, 3:40:42 AM8/20/07
to JavaSOS
Hola Jaime.
Si has luchado con el api de impresión de java, y has conseguido hacer
algo, entonces Jasper Reports no es nada para ti ;). Si java
consiguiese imprimier bien o al menos de forma sencilla no tendría
rival.
En cuanto a tu pregunta del número de páginas, éste se establece en la
instrucción:
"printRequestAttributeSet.add(new Copies(1));"
donde 1 es el número de copias.
Basciamente tu creas un set de atributos:
"PrintRequestAttributeSet printRequestAttributeSet = new
HashPrintRequestAttributeSet();"
y luego le añades varios parametros, número de copias, tamaño del
papel...
Finalmente le pasas el set de atributos (printRequestAttributeSet) al
servicio de exportación de reportes. Si dispone de lo que pides (papel
coincide o se parece a lo que pides) imprimirá siguiendo dichos
parámetros. Esto lo digo, porque si deseas imprimir en un tamaño de
papel poco convencional y el driver de la impresora no es muy bueno
puede plantear varios problemas (por ejemplo imprimir etiquetas de 3'
X 8')

En cuanto a guias de uso de JasperReports, yo mismo he escrito 3
astículos para comenzar a usarlo de forma sencilla:
http://blog.marcnuri.com/blog/default/2007/06/19/Getting-started-with-JasperReports-Reporting-in-Java-Part-I

http://blog.marcnuri.com/blog/default/2007/06/29/Getting-started-with-JasperReports-JDBC-connections-Part-II

http://blog.marcnuri.com/blog/default/2007/07/16/Getting-started-with-JasperReports-Printing-reports-from-your-java-app-Part-III

Sin embargo, están en inglés y son para un nivel muy básico. Seguro
que buscando bien en google sale algo. Lamentablemente la ayuda
oficial es escasa, a menos que acudas a su servicio comercial.

Saludos
--
Marc Nuri

Jose Casalis

unread,
Aug 21, 2007, 10:33:08 AM8/21/07
to JavaSOS
Gracias Hernán y graicas a todos!!!! Encontré dodne estaba la falla,
me fueron de gran ayuda!!!!!

Lo que tenía hecho en Java con Jasperreports, lo pude solucionar
perfectamente, pero la falla grande está en lo que estoy haciendo en
Adobe Flex!!!

Muchas gracias a TODOS!!!!!!!!!!

On 16 ago, 10:05, Hernan Yamakawa <hernan.yamak...@gmail.com> wrote:
> Hola Jose que tal, hace poco me top=E9 con el mismo problema, ac=E1 te
> dejo el link de donde saque info al respecto, yo lo implement=E9 de
> esa
> manera y funcion=F3 correctamente. Igual deber=EDas ver de que forma
> te
> conviene guardar info de la impresora por la cual quer=E9s imprimir
> para
> luego poder seleccionarla automaticamente cada vez que realizas una
> impresi=F3n.
>

> http://blog.marcnuri.com/blog/default/2007/03/22/Choosing-a-printer-p...

Reply all
Reply to author
Forward
0 new messages