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

Imprimir con Java PrintJob Ticket

Estas en el tema de Imprimir con Java PrintJob Ticket en el foro de Java en Foros del Web. Amigos nuevamente aquí preguntando cosas sencillas, que no me dejan dormir.... Le comento estoy programando en Java y mando a imprimir un Texto a una ...
  #1 (permalink)  
Antiguo 13/02/2011, 00:03
Usuario no validado
 
Fecha de Ingreso: julio-2008
Ubicación: Quito
Mensajes: 76
Antigüedad: 16 años, 5 meses
Puntos: 2
Imprimir con Java PrintJob Ticket

Amigos nuevamente aquí preguntando cosas sencillas, que no me dejan dormir....

Le comento estoy programando en Java y mando a imprimir un Texto a una impresora termica BIXOLO 350, está tiene un rollo de papel termico de 80mm de ancho...

En java logré imprimir como yo quería, pero no me imprime desde el margen (0,0) sino desde el (72, 72), les dejo el codigo para que por favor me ayuden con esto que ya llevo algún tiempo leyendo en los foros y no encuentro solución:

La parte roja es donde tengo problema... según yo mando los datos necesarios para que me imprima el el margen(1,1) pero nada...

Gracias

Código:
package modulocliente;
import java.awt.*;
import java.awt.print.*;
import java.awt.geom.*;

class ObjetoAImprimir implements Printable{
   public int print (Graphics g, PageFormat pF, int pageIndex){
       
       Paper paper = new Paper();
       paper.setSize(80,90);
       paper.setImageableArea(1.0,1.0,100,100);
       pF.setPaper(paper);

       
       switch (pageIndex){
            case 0 : //Página 1: Dibujamos sobre g y luego lo pasamos a g2
                g.drawString("texto a imprimir", 73, 73);
                System.out.println("Paper X " + pF.getImageableX());
                
                return PAGE_EXISTS; //La página 1 existe y se imprimirá
           default: return NO_SUCH_PAGE;        //No se imprimirán más páginas
       }
       
       

   }
}


public class imprimir {
    
    /** Creates a new instance of imprimir */
    public imprimir() {
        PrinterJob job = PrinterJob.getPrinterJob();
      job.setPrintable(new ObjetoAImprimir());
      try { job.print(); }
         catch (PrinterException e) { System.out.println("Error de impresión: " + e); }
    }
}
  #2 (permalink)  
Antiguo 25/02/2011, 11:59
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 15 años, 1 mes
Puntos: 16
Respuesta: Imprimir con Java PrintJob Ticket

a mi me pasa algo parecido me agarra la impresion como si fuera joja tamaño cartatienen idea de q es lo que pasa?

este es mi codigo

Código Java:
Ver original
  1. public class imprimir_individual {
  2.     String item_no,ident,country_o,country_o2,qty2,cus,printName = "ZDesigner 140XiIII Plus";
  3.   int count;
  4.  
  5.    
  6. public void impresion(String item,String cust_num,String iden,String country,String country2,String qty) throws PrinterException{
  7.     item_no=item;
  8.     ident=iden;
  9.     country_o=country;
  10.     country_o2=country2;
  11.     qty2=qty;
  12.     cus=cust_num;
  13.    
  14. PrinterJob printJob = PrinterJob.getPrinterJob();
  15.   Book book = new Book();
  16.   book.append(new IntroPage(), printJob.defaultPage());
  17.     printJob.setPageable(book);
  18.     PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
  19.       for (PrintService printService : services) {
  20.             if (count == 0) {//aqui cambio para q tome monbre de impresora, se quta si la impresora es local
  21.                 printName = printService.getName();
  22.             }
  23.             count = count + 1;//junto con este
  24.         }
  25. AttributeSet aset = new HashAttributeSet();
  26.         aset.add(new PrinterName(printName, null));
  27.         services = PrintServiceLookup.lookupPrintServices(null, aset);
  28.         for (PrintService printService : services) {
  29.             PrintService printers[] = PrintServiceLookup.lookupPrintServices(null, aset);
  30.                 if (printers.length == 1) {
  31.                printJob.setPrintService(printers[0]);
  32.              try {
  33.         printJob.print();
  34.  
  35.       } catch (Exception PrintException) {
  36.         PrintException.printStackTrace();
  37.       }
  38. }
  39.         }
  40.    
  41. }
  42.   private class IntroPage implements Printable {
  43.  
  44.          public int print(Graphics g, PageFormat pageFormat, int page) {
  45.             try {
  46.                 Graphics2D g2d2 = (Graphics2D) g;
  47.                  java.util.Date fecha = new Date();
  48. int [] diasDeMeses = new int [] {31,28,31,30,31,30,31,31,30,31,30,31,30,31};
  49. String [] numeroDeMeses = new String [] {"","1","2","3","4","5","6","7","8","9","10","11","12"};
  50. int mes = fecha.getMonth();
  51. System.out.println("mes: "+mes);
  52. int dia = fecha.getDay();
  53. int dia2=0;
  54. int dias = -1;
  55. for( int i = 0; i<mes; i++ ){
  56.     dia2=diasDeMeses[i];
  57. dias =dias + dia2;
  58. }
  59. dias += dia;
  60. String dias_acum=""+dias+"";
  61. if(dias_acum.length()==1){
  62. dias_acum="00"+dias_acum;
  63. }
  64. if(dias_acum.length()==2){
  65. dias_acum="0"+dias_acum;
  66. }
  67.                
  68.                 int iNumero=fecha.getYear();
  69.                 int anio = iNumero&#37;10;
  70.                 g2d2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
  71.                 g2d2.setPaint(Color.black);
  72.                Rectangle2D.Double rec_ind = new Rectangle2D.Double(-5, -5, 144, 203); //se tiene q quitar
  73.                 g2d2.draw(rec_ind);
  74.                 String customer = cus;
  75.                 Font customerFont = new Font("Arial", Font.BOLD, 14);
  76.                 String julian_ind = anio+dias_acum;
  77.                 Font julian_iFont = new Font("Arial", Font.BOLD, 10);
  78.                 Barcode barcode_c = BarcodeFactory.createCode39(cus, false);
  79.                 barcode_c.setDrawingText(false);
  80.                 barcode_c.setBarHeight(35);
  81.                 barcode_c.setBarWidth(1);
  82.                 BufferedImage image_c = BarcodeImageHandler.getImage(barcode_c);
  83.                  //parte de arriba
  84.                 g2d2.setFont(customerFont);
  85.                  FontMetrics customerfontMetrics = g2d2.getFontMetrics();
  86.                 g2d2.drawString(customer, 45, 16);
  87.                 g2d2.drawImage(image_c, 10, 21, null);
  88.                 g2d2.setFont(julian_iFont);
  89.                FontMetrics julian_ifontMetrics = g2d2.getFontMetrics();
  90.                 g2d2.drawString(julian_ind, 64, 70);
  91.                 ////parte de abajo
  92.                 g2d2.setFont(julian_iFont);
  93.                 FontMetrics julian_i2fontMetrics = g2d2.getFontMetrics();
  94.                 g2d2.drawString(julian_ind, 64, 200);
  95.                 g2d2.drawImage(image_c, 10, 150, null);
  96.                 g2d2.setFont(customerFont);
  97.                 FontMetrics customer2fontMetrics = g2d2.getFontMetrics();
  98.                 g2d2.drawString(customer, 45, 145);
  99.  
  100.  
  101.             } catch (OutputException ex) {
  102.                 Logger.getLogger(imprimir_individual.class.getName()).log(Level.SEVERE, null, ex);
  103.             } catch (BarcodeException ex) {
  104.                 Logger.getLogger(imprimir_individual.class.getName()).log(Level.SEVERE, null, ex);
  105.             } return PAGE_EXISTS;
  106.    }
  107.   }

probe con la configuracion del papel pero ni asi pude

si alguien puede ayudarnos se lo agradecere
  #3 (permalink)  
Antiguo 27/06/2011, 06:12
 
Fecha de Ingreso: junio-2011
Mensajes: 1
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Imprimir con Java PrintJob Ticket

Cita:
Iniciado por ivlecamo Ver Mensaje
switch (pageIndex){
case 0 : //Página 1: Dibujamos sobre g y luego lo pasamos a g2
g.drawString("texto a imprimir", 73, 73);
System.out.println("Paper X " + pF.getImageableX());
Viendo rápido el código, me parece que ahí es donde tenes el problema, en el método drawString tenes q pasarle las cordenadas en x e y, no el ancho y alto. Probá poniendo "g.drawString("texto a imprimir", 1, 73);". A lo mejor es ese el problemita que tenias.
Espero que te sirva...
Saludos.

Última edición por rosales_roo; 27/06/2011 a las 06:33 Razón: Agrego aclaraciones...
  #4 (permalink)  
Antiguo 04/11/2013, 12:42
 
Fecha de Ingreso: noviembre-2013
Ubicación: San Salvador
Mensajes: 2
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: Imprimir con Java PrintJob Ticket

Quien me puede ayudar? necesito imprimir una factura en java, pero tengo este problema a la hora de recoger los valores del JTable.
vean el enlace
[URL="https://www.facebook.com/photo.php?fbid=632641883444684&set=gm.548814201861 757&type=1&theater"]https://www.facebook.com/photo.php?fbid=632641883444684&set=gm.548814201861 757&type=1&theater[/URL]

Etiquetas: printjob, ticket
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 05:50.