elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Imprimir sin ventana de dialogo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Imprimir sin ventana de dialogo  (Leído 8,621 veces)
ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Imprimir sin ventana de dialogo
« en: 11 Marzo 2010, 20:38 pm »


Hola.. Estoy creando un aplicacion que genera unos boletos, en esos boletos se tiene que imprimir un codigo de barra. Bueno el codigo de barra lo genero facilmente, luego mando a imprimir este codigo pero el programa me muestra una ventana de dialogo para elegir la impresoa y las opciones de impresion.. Lo que quiero es poder imprimir sin que aparezca esta ventana de dialogo sino que una vez enviada la peticion de impresion se imprima sin preguntar nada..
esto es lo que tengo..



Código
  1. import java.awt.print.*;
  2.  
  3. import javax.print.PrintService;
  4.  
  5. import net.sourceforge.barbecue.*;
  6.  
  7.    public class PrintingExample
  8.    {
  9.  
  10.     public static void main(String[] args)
  11.     {
  12.     try
  13.     {
  14.  
  15.     Barcode b = BarcodeFactory.createCode128("000100");
  16.     PrinterJob job = PrinterJob.getPrinterJob();
  17.     job.setPrintable(b);
  18.     job.setJobName("boleto");
  19.     job.setCopies(1);
  20.     job.setPrintService(service);
  21.  
  22.     //if (job.printDialog())
  23.     {
  24.     job.print();
  25.     }
  26.     }
  27.     catch (Exception e)
  28.     {
  29.     e.printStackTrace();
  30.     }
  31.  
  32.     }
  33.  
  34.   }
  35.  
  36.  

En este codigo comento el if (job.printDialog()), si se hace eso lo que ocurre es que comienza la impresion pero la cancela rapidamente y por lo tanto la hoja sale en blanco..

Bueno Muchas Gracias :D


« Última modificación: 12 Marzo 2010, 04:36 am por ZeroVzla » En línea

mayofunk

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Imprimir sin ventana de dialogo
« Respuesta #1 en: 15 Marzo 2010, 05:32 am »

abstract void print()Prints a set of pages.
void print(PrintRequestAttributeSet attributes) Prints a set of pages using the settings in the attribute set.
abstract  boolean printDialog()Presents a dialog to the user for changing the properties of the print job.
boolean    printDialog(PrintRequestAttributeSet attributes) A convenience method which displays a cross-platform print dialog for all services which are capable of printing 2D graphics using the Pageable interface.

Por lo que veo en la documentación me da la impresión de que si ocupas print() o bien print(PrintRequestAttributeSet attributes), con setteos previos no deberia aparecer el dialogo !

Avisanos que tal te va !


En línea

ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: Imprimir sin ventana de dialogo
« Respuesta #2 en: 19 Junio 2010, 01:43 am »

Bueno revivo esto por si alguien tenia la misma duda..

A la final no entendí muy bien qué sucedia, lo unico que puedo decirles es que sobrescribi el método print() de la clase PrinterJob para que imprimiera el código de barras que era generado dentro del mismo método print luego de ser transformado en una imagen... Tambien me di cuenta que cuando posicionaba ya sea un caracter, un string o cualquier objeto a imprimir en una coordenada menor a (80,80) osea (80,70) o (70,80) se me presentaba la situación expuesta en el primer post...

Así que bueno espero les sirva un poco lo anterior y si alguien está interesado en el codigo puede pedirlo por aquí... no lo posteo porque no lo tengo en la pc con la que escribí este post pero si alguien lo necesita de seguro lo coloco :D..

saludos.. ZeroVzla..!!!
En línea

vale_1985

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Imprimir sin ventana de dialogo
« Respuesta #3 en: 8 Agosto 2010, 16:34 pm »

Hola ZeroVzla, me podrias decir como lo hiciste? Porque a mi tambien me imprime la pagina en blanco, no me importa si aparece el cuadro de dialogo, gracias de antemano!!!
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Imprimir sin ventana de dialogo
« Respuesta #4 en: 11 Agosto 2010, 00:07 am »

Hola que tal vale_1985

mira encontré este código, la verdad no estoy seguro de si funciona porque lo probé con una impresora virtual pdf.

Código
  1. package com.foro;
  2. import java.io.BufferedInputStream;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6.  
  7. import javax.print.Doc;
  8. import javax.print.DocFlavor;
  9. import javax.print.DocPrintJob;
  10. import javax.print.PrintException;
  11. import javax.print.PrintService;
  12. import javax.print.PrintServiceLookup;
  13. import javax.print.SimpleDoc;
  14.  
  15.  
  16. public class printWithoutDialog {
  17.  
  18. public static void main(String[] args) {
  19. new printWithoutDialog();
  20. }
  21.  
  22. public printWithoutDialog(){
  23. try {
  24. // Open the image file
  25. new FileInputStream("C:\\duke.gif"));
  26.  
  27. // Find the default service
  28. DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
  29. PrintService service = PrintServiceLookup.lookupDefaultPrintService();
  30.  
  31. // Create the print job
  32. DocPrintJob job = service.createPrintJob();
  33. Doc doc = new SimpleDoc(is, flavor, null);
  34.  
  35. // Monitor print job events; for the implementation of PrintJobWatcher,
  36. // see Determining When a Print Job Has Finished  
  37. PrintJobWatcher pjDone = new PrintJobWatcher(job);
  38.  
  39. // Print it
  40. job.print(doc, null);
  41.  
  42. // Wait for the print job to be done
  43. pjDone.waitForDone();
  44.  
  45. // It is now safe to close the input stream
  46. is.close();
  47. } catch (PrintException e) {
  48.  
  49. } catch (IOException e) { }
  50. }
  51.  
  52. }
  53.  


Código
  1. package com.foro;
  2. import javax.print.DocPrintJob;
  3. import javax.print.event.PrintJobAdapter;
  4. import javax.print.event.PrintJobEvent;
  5.  
  6.  
  7. public class PrintJobWatcher {
  8. // true if it is safe to close the print job's input stream
  9. boolean done = false; PrintJobWatcher(DocPrintJob job) {
  10.  
  11. // Add a listener to the print job
  12. job.addPrintJobListener(new PrintJobAdapter() {
  13. public void printJobCanceled(PrintJobEvent pje) {
  14. allDone();
  15. }
  16.  
  17. public void printJobCompleted(PrintJobEvent pje) {
  18. allDone();
  19. }
  20.  
  21. public void printJobFailed(PrintJobEvent pje) {
  22. allDone();
  23. }
  24.  
  25. public void printJobNoMoreEvents(PrintJobEvent pje) {
  26. allDone();
  27. }
  28.  
  29. void allDone() {
  30. synchronized (PrintJobWatcher.this) {
  31. done = true; PrintJobWatcher.this.notify();
  32. }
  33. }
  34. });
  35. }
  36.  
  37. public synchronized void waitForDone() {
  38. try {
  39. while (!done) {
  40. wait();
  41. }
  42. } catch (InterruptedException e) {
  43. }
  44. }
  45.  
  46. }
  47.  

Solo asegurate de que el archivo existe, en este ejemplo utiliza una imagen tipo gif.

Un saludo
En línea

abc
vale_1985

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Imprimir sin ventana de dialogo
« Respuesta #5 en: 11 Agosto 2010, 14:12 pm »

Muchisimas gracias! Voy a probar  ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con dialogo (Solucionado)
Programación C/C++
nolasco281 4 3,352 Último mensaje 13 Abril 2014, 22:48 pm
por Eternal Idol
Cargar web en diálogo
Desarrollo Web
Zoik 2 1,950 Último mensaje 17 Junio 2015, 02:08 am
por [u]nsigned
Ayuda programa de diálogo
Programación C/C++
GusMza 4 1,736 Último mensaje 27 Enero 2019, 02:24 am
por Loretz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines