Java - En que momento es que le pasamos los argumentos al metodo print de la clase printerJob

 
Vista:

En que momento es que le pasamos los argumentos al metodo print de la clase printerJob

Publicado por Josue (1 intervención) el 23/11/2017 16:35:14
Mencionar que lo que quiero es ENTENDER como funciona el paso de argumentos.

Este codigo lo uso para imprimir un ticket (en una impresora termica con un ancho de 80mm) y funciona correctamente no tiene errores.

Los dos codigos que muestro a continuacion estan en clases separadas (archivos diferentes) por eso es que pregunto cose pasan los argumentos.

Mi pregunta es: En que momento es que se le pasan los argumentos al metodo print de la clase printerJob.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
printerJob pj = PrinterJob.getPrinterJob();
PageFormat pf = pj.defaultPage();
Paper paper = new Paper();
 
paper.setImageableArea(10, 0, 200, 100);
pf.setPaper(paper);
 
pj.setPrintable(new Impresora(), pf);
 
 
  try {
 
    pj.print();
  } catch (PrinterException e) {
    System.out.println(e);
  }

En la linea:

1
pj.print();

se utiliza el metodo print pero no le pasamos ningun argumento. En otra clase que implementa printable es donde se tiene el metodo print que es el que llamamos en la linea de codigo que les mostre arriba, y donde se ve que es necesario pasarle argumentos pero no lo hacemos, por que como se mustra solo ponemos " pj.print(); " sin argumentos.

La clase Impresora es donde tengo el metodo print y es como se muestra a continuacion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Impresora implements Printable
{
  public int print(Graphics g, PageFormat pf, int pageIndex) {
    if (pageIndex != 0)
      return NO_SUCH_PAGE;
    Date fecha = new Date();
    Graphics2D g2 = (Graphics2D) g;
    g2.setFont(new Font("Serif", Font.PLAIN, 10));
    g2.setPaint(Color.black);
 
    g2.drawString("Fecha "+fecha.getDate()+"-"+(fecha.getMonth()+1)+"-"+(fecha.getYear()+1900)+"   Hora "+fecha.getHours()+":"+fecha.getMinutes(), 10, 20);
 
 
 
 
    Rectangle2D outline = new Rectangle2D.Double(pf.getImageableX(), pf.getImageableY(), pf.getImageableWidth(), pf.getImageableHeight());
    g2.draw(outline);
    return PAGE_EXISTS;
 
  }
}

En que momento se le pasan los argumentos al metodo:

1
public int print(Graphics g, PageFormat pf, int pageIndex)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

En que momento es que le pasamos los argumentos al metodo print de la clase printerJob

Publicado por Tom (1831 intervenciones) el 23/11/2017 17:42:50
Los rellena el método print() de la instancia de PrinterJob que retorna PrinterJob.getPrinterJob().
Es de suponer que, ya que no has configurado nada con printDialog(), se irá llamando a Printable.print(...) con número de página sucesivo hasta que Printable.print(...) retorne NO_SUCH_PAGE.

Léete el API. Y el tutorial.

https://docs.oracle.com/javase/tutorial/2d/printing/index.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar