Programación General > Java
Impresoras En Java
maldicion:
mm
fuhrer:
Hola que tal.
Lo que yo hice y si me funciono fue lo siguiente:
--- Código: Text --- private metodoDeTuBoton() { PrinterJob printJob = PrinterJob.getPrinterJob(); printJob.setPrintable(this); if (printJob.printDialog()) { try { printJob.print(); } catch (Exception ex) { ex.printStackTrace(); } } y luego para la impresión:
--- Código: Text --- public int print(Graphics g, PageFormat pf, int pi) throws PrinterException { if (pi >= 1) { return Printable.NO_SUCH_PAGE; } cnv[actual].paint((Graphics2D) g); return Printable.PAGE_EXISTS; } el único cambio que debes hacer es en donde yo pongo cnv[actual] poner el de tu componente y llamar al método que usas para el pintado.
También debes importar estos dos:
--- Código: Text --- import java.awt.print.PrinterJob;import java.awt.print.*; Y a tu clase la declaras:
--- Código: Text --- class MyJPanel extends JPanel implements Printable{ Creo eso es todo lo necesario.
Espero haberte ayudado.
Hasta luego.
maldicion:
mm
fuhrer:
Hola de nuevo.
Pues no se si te sirva, o tal vez lo puedes adaptar a lo que necesitas, pero lo que yo hice fué usando Graphics2D, así que lo necesario es:
--- Código: Text --- import java.awt.image.*;import java.awt.geom.*;
luego haces:
--- Código: Text --- Image img = Toolkit.getDefaultToolkit().getImage("ruta/de/tu/imagen/imagen.jpg");BufferedImage imag = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);Graphics2D imgs = imag.createGraphics();imgs.drawImage(img,0,0,100,100,null);g2.setPaint(new TexturePaint(imag, new Rectangle(0,0,100,100)));g2.fillRect(x,y,x1,y1);
Con eso te dibuja la imágen dentro del Rectangulo que proporciones, ahora que con esto tambien puedes colocar la imagen dentro de circulos, ovalos, etc, cualquier figura permitida.
Ahi sólo le varias algunas coordenadas que se ajusten a lo que deseas.
Espero te sirva.
Hasta luego.
maldicion:
hola fuhrer:
ya logre que se imprimiera, tanto la imagen como los textos, y me sirvio de mucho tu codigo de la impresora, asi pude reducir un poco mas mi codigo.
ahora quisiera saber como puedo hacer para que los textfield, que reciben los datos, se presentaran de manera centrada, de hecho ya se muestran en la pantalla, pero se salen de la frame interna, estoy utilizando el FlowLayout y el Grid Layout, pero como te digo se salen de las coordenadas de 500, 350, si puedo despues te envio el codigo para que veas que es lo que hace.
GRACIAS POR EL TIP ANTERIOR
Navegación
[#] Página Siguiente
Ir a la versión completa