Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/02/2011, 15:16
Avatar de valdo_kof
valdo_kof
 
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: imprimir con java y printjob

encontre este codigo en la cual busco la impresora q necesito pero no logro encontrar una funcion para imprimir a la impresora q yo le indique sin q me habra el cuadro de dialogo

Código Java:
Ver original
  1. import javax.print.DocFlavor;
  2. import javax.print.PrintService;
  3. import javax.print.PrintServiceLookup;
  4. import javax.print.attribute.AttributeSet;
  5. import javax.print.attribute.HashAttributeSet;
  6. import javax.print.attribute.standard.PrinterName;
  7.  
  8.  
  9. public class PrintExamples {
  10.  
  11.     public static void main(String[] args) {
  12.       String printName="";
  13.       int count=0;
  14.         PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
  15.         for(PrintService printService : services){
  16.             if (count==0){
  17.         printName=printService.getName();}
  18.             count=count+1;
  19.         }
  20.  
  21.          AttributeSet aset = new HashAttributeSet();
  22.         aset.add(new PrinterName(printName, null));
  23.         services = PrintServiceLookup.lookupPrintServices(null, aset);
  24.         if(services.length == 0){
  25.             System.out.println("No se encontro impresora con nombre " + printName);
  26.         }
  27.         for (PrintService printService : services) {
  28.             System.out.println("impresora encontrada: "+printService.getName());
  29.         }
  30.                  }
  31. }

lo que me falta en este codigo es usar la impresora q busque para imprimir en esa

lo que pretendi hacer para mandarle directamente fue esto pero no sale nada asi

Código Java:
Ver original
  1. import javax.print.DocFlavor;
  2. import javax.print.PrintService;
  3. import javax.print.PrintServiceLookup;
  4. import javax.print.attribute.AttributeSet;
  5. import javax.print.attribute.HashAttributeSet;
  6. import javax.print.attribute.standard.PrinterName;
  7.  
  8.  
  9. public class PrintExamples {
  10.  
  11.     public static void main(String[] args) {
  12.       String printName="nombre de la impresora";
  13.      PrintService services = PrintServiceLookup.lookupPrintServices(null, null);
  14.          
  15.         AttributeSet aset = new HashAttributeSet();
  16.         aset.add(new PrinterName(printName, null));
  17.         services = PrintServiceLookup.lookupPrintServices(null, aset);
  18.          PrintService services = PrintServiceLookup.lookupPrintServices(null, aset);/*aqui intento
  19. poner q me asigne a services el servicio de impresion de la impresora q necesito para luego mandar a imprimir a esa impresora*/
  20.  
  21. System.out.println("impresora encontrada: "+services.getName());
  22.    
  23.  
  24. try{
  25. DocPrintJob pj = service.createPrintJob();
  26. // InputStreamDoc is an implementation of the Doc interface //
  27. String pd=new String("jkskhfkjsdñalfhjdskBBBBBBBBBBBBBB");
  28.  
  29. DocAttributeSet das = new HashDocAttributeSet();
  30.  
  31. Doc doc = new SimpleDoc(pd, flavor,das);
  32. try {
  33. System.out.println("Usando impresora"+service.getName());
  34. pj.print(doc, null);
  35. }
  36. catch (Exception e){
  37. System.out.println("Error al imprimir3: "+e.getMessage());
  38. }
  39. }
  40. catch (Exception e){
  41. System.out.println("Error al imprimir3: "+e.getMessage());
  42. }
  43.  
  44.                  }
  45. }

este ultimo codigo no funciona es solo un ejemplo de lo q pretendo hacer para despues adaptarlo al codigo de hasta arriba q es en donde va a ir en lugar de este pedaso

if (printJob.printDialog()) {
try {
printJob.print();
} catch (Exception PrintException) {
PrintException.printStackTrace();

}


espero me haya explicado y me puedan ayudar

gracias de antemano