Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/02/2011, 11:05
jksroger
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Información Respuesta: ayuda con impresion en java

Mira yo realize algo parecido para imprimir boletas
pero no implemente la interface Printable
Código Javascript:
Ver original
  1. public class ImprimirBoletas {
  2.  
  3.     private Font fuente;
  4.     private PrintJob pj;
  5.     private Graphics pagina;
  6.     private int incX;
  7.     private int incY;
  8.     private Pedido boleta;
  9.     private Vector<ItemPedido> items;
  10.  
  11.     public ImprimirBoletas(Pedido boleta) {
  12.         try {
  13.             incX = 40;
  14.             incY = 84;
  15.             this.boleta = boleta;
  16.             this.items = PedidoLogic.listaItemPedido(boleta);
  17.             fuente = new Font("Dialog", Font.PLAIN, 10);
  18.             pj = Toolkit.getDefaultToolkit().getPrintJob(new Frame(), "Impresión de Boleta", null);
  19.         } catch (Exception ex) {
  20.             ex.printStackTrace();
  21.         }
  22.     }
  23.  
  24.     public void imprimir() {
  25.         Cliente cliente = null;
  26.         CNatural cnatural = null;
  27.         ItemPedido item = null;
  28.         Producto producto = null;
  29.         try {
  30.             pagina = pj.getGraphics();
  31.             pagina.setFont(fuente);
  32.             pagina.setColor(Color.black);
  33.             cliente = boleta.getCliente();
  34.             if (cliente.getTipoCliente() == TipoCliente.NATURAL) {
  35.                 cnatural = (CNatural) cliente;
  36.                 pagina.drawString(cnatural.getNombres(), incX, incY);
  37.                 pagina.drawString(Utilitarios.getStringFecha(boleta.getFechaEmision()), incX + 110, incY);
  38.                 pagina.drawString(cnatural.getDireccion(), incX, incY + 15);
  39.                 pagina.drawString(cnatural.getDni(), incX, incY + 39);
  40.             }
  41.             //////////////////////
  42.             //Productos
  43.             int altura = 68;
  44.             double importe = .0,  total = .0;
  45.             incX=20;
  46.             for (int i = 0; i < items.size(); i++) {
  47.                 item = items.get(i);
  48.                 producto = item.getProducto();
  49.                 pagina.drawString(item.getCantidad() + "", incX, incY + altura);
  50.                 pagina.drawString(producto.getNombre(), incX + 30, incY + altura);
  51.                 importe = Utilitarios.getRedondeo(item.getPrecioUnitario() * item.getCantidad());
  52.                 total += importe;
  53.                 pagina.drawString(importe + "", incX + 140, incY + altura);
  54.                 altura += 15;
  55.             }
  56.             incY += 100;
  57.             pagina.drawString(total + "", incX + 140, incY + 20);
  58.             pagina.dispose();
  59.             pj.end();
  60.         } catch (Exception e) {
  61.             JOptionPane.showMessageDialog(null, "Impresión cancelada...", "Aviso",
  62.                     JOptionPane.WARNING_MESSAGE);
  63.         }
  64.     }
  65. }
cada vez q quiero utilizar instancio la clase y llamamo el metodo imprimit