Gráficos con Java 2D

Cualquier cosa que podamos dibujar en la pantalla tambi�n puede ser imprimida. Podemos f�cilmente usar un 'printable job' para imprimir el contenido de un componente.

.�Ejemplo: ShapesPrint

En este ejmplo usamos el mismo c�digo de dibujo para mostrar e imprimir los contenidos de un componente. Cuando el usuario pulsa sobre el bot�n print, se crea un 'print job' y se llama a printDialog para mostrar el di�logo de impresi�n. Si el usuario cont�nua con el trabajo, el proceso de impresi�n se inicia, y el sistema de impresi�n llama a print cuando sea necesario renderizar el trabajo a la impresora.

ShapesPrint es el 'page painter'. Su m�todo print llama a drawShapes para realizar el dibujo del 'print job'. (Tambi�n se llama al m�todo drawShapes por parte de paintComponent para dibujar en la pantalla.)

public class ShapesPrint extends JPanel
                         implements Printable, ActionListener {
...
public int print(Graphics g, PageFormat pf, int pi)
                          throws PrinterException {
    if (pi >= 1) {
        return Printable.NO_SUCH_PAGE;
    }
    drawShapes((Graphics2D) g);
    return Printable.PAGE_EXISTS;
}
...
public void drawShapes(Graphics2D g2) {
    Dimension d = getSize();
    int gridWidth = 400/6;
    int gridHeight = 300/2;
    int rowspacing = 5;
    int columnspacing = 7;
    int rectWidth = gridWidth - columnspacing;
    int rectHeight = gridHeight - rowspacing;
    ...
    int x = 85;
    int y = 87;
    ...
    g2.draw(new Rectangle2D.Double(x,y,rectWidth,rectHeight));
    ...

El c�digo de control del trabajo est� en el m�todo actionPerformed de ShapesPrint

public void actionPerformed(ActionEvent e) {
    if (e.getSource() instanceof JButton) {
        PrinterJob printJob = PrinterJob.getPrinterJob();
        printJob.setPrintable(this);
        if (printJob.printDialog()) {
            try {
                printJob.print();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
}

Puedes encontrar el c�digo completo de este programa en ShapesPrint.java .

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO