Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/02/2011, 23:56
ivlecamo
Usuario no validado
 
Fecha de Ingreso: julio-2008
Ubicación: Quito
Mensajes: 76
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: imprimir con java y printjob

Hola valdo_kof, gracias por tu ayuda.... Pero parece que me entendiste mal...

Pero sabes encontré la solución en otro foro y ahora me generó un nuevo problema.

Lo que quiero hacer es imprimir un ticket en un papel de 80mm de ancho, correcto!!
Ahora los margenes no me permitían imprimir por ejemplo un texto simple en las coordenadas, g.drawString("texto a imprimir", 10, 10); porque los márgenes estaban configurados para 72px.

Encontré el siguiente código:

Código:
 PrinterJob job = PrinterJob.getPrinterJob();
        job.setPrintable(new ObjetoAImprimir());
        PageFormat pf = new PageFormat();
        Paper p = new Paper();
        p.setImageableArea(0,0,600,800);
        pf.setPaper(p);
        job.pageDialog(pf); 
Este hace lo que yo quiero imprimir desde la esquina superior de la hoja... Pero siempre se abre el pageDialog para mandar las propiedades del margen de impresión.

Lo que quiero es: Cómo puedo mandar las propiedades del area de impresión sin abrir el pageDialog?

Gracias

Dejo el código completo para que por favor me ayuden.

Código:
package modulocliente;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.awt.print.*;
import java.util.Date;
import java.util.logging.*;


class ObjetoAImprimir implements Printable{
   public int print (Graphics g, PageFormat f, int pageIndex){

       Graphics2D g2 = (Graphics2D) g;
       Rectangle2D rect = new Rectangle2D.Double(f.getImageableX(), f.getImageableY(),193,192);
       switch (pageIndex){
            case 0 :                 
                g.drawString("texto a imprimir", 10, 100);
                g2.draw(rect);
                //System.out.println(" "+f.getImageableX()+" "+f.getImageableY()+" "+f.getImageableWidth()+" "+f.getImageableHeight());
                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());
        PageFormat pf = new PageFormat();
        Paper p = new Paper();
        p.setImageableArea(0,0,600,800);
        pf.setPaper(p);
        job.pageDialog(pf);

        try { 
            job.print(); 
        }catch (PrinterException e) { System.out.println("Error de impresión: " + e); }
    }
}