Print job

Solo disponible en BuenasTareas
  • Páginas : 5 (1213 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de febrero de 2011
Leer documento completo
Vista previa del texto
Objeto PrinterJob
Para usar el objeto PrinterJob deberemos tener un objeto Printable que será el que contendrá lo que queremos imprimir. Este objeto debe contener la función print donde indicaremos la información que nos interesa imprimir. Esta información será dibujada sobre un objeto Graphics (que luego pasaremos a Graphics2D) o Graphics2D (la impresión en Java, al menos versones anterioreses un trabajo gráfico, de ahí su lentitud). Después crearemos el objeto PrinterJob, mediante setPrintable(objeto_a_imprimir) haremos que se dibuje la página a mandar a la impresora. Llamaremos o no, a la ventana de configuración de impresión, y por último imprimiremos.
Impresión mediante un objeto PrinterJob(JDK1.2+) para imprimir gráficos.
//Impresión en Java2 mediantePrinterJob
import java.awt.*;
import java.awt.print.*;
import java.awt.geom.*;

//La clase debe de implementar la impresión implements Printable
class ObjetoAImprimir implements Printable
{
public int print (Graphics g, PageFormat f, int pageIndex){
//Creamos un objeto 2D para dibujar en el
Graphics2D g2 = (Graphics2D) g;
//Este código imprime 2 páginas una con un cuadrado o marco
//y una segunda con un circulo en la esquina superior izquierda

//Creamos el rectángulo
//getImagebleX()coge la parte de la hoja donde podemos
//imprimir quitando los bordes. Si no hiciesemos
//esto así y tuviesemos bordes definidos en la impresión
//lo que dibujasemos fuera de los bordes no lo
//imprimiría aunque cupiese en la hoja físicamente.
Rectangle2D rect = newRectangle2D.Double(f.getImageableX(),
f.getImageableY(),
f.getImageableWidth(),
f.getImageableHeight());

//Creamos la circunferencia
Ellipse2D circle = newEllipse2D.Double(100,100,100,100);

//pageIndex indica el número de la página que se imprime
//cuando es 0 primera página a imprimir, es un rectángulo
//cuando es 1 segunda página a imprimir, es una circunferencia
//En otro caso se devulve que no hay más páginas a imprimirswitch (pageIndex)
{
case 0 : //Página 1: Dibujamos sobre g y luego lo pasamos a g2
g.setColor(Color.black);
g.fillRect(110,120,30,5);
g.setColor(Color.pink);
g.drawLine(0,0,200,200);g2 = (Graphics2D) g;
return PAGE_EXISTS; //La página 1 existe y se imprimirá
case 1 : //Página 2: Circunferencia y rectángulo
g2.setColor(Color.red);
g2.draw(circle);
g2.draw(rect);return PAGE_EXISTS; //La página 2 existe y se imprimirá
default: return NO_SUCH_PAGE; //No se imprimirán más páginas
}
}
}

//clase pública que se ejecuta donde debe de estar el main que llama a la
//otra clase.
public class Imprime...
tracking img