Categorías destacadas
programacion php    
Artículo
16
¡votar!

 Gráficos con Java 2D


Imprimir los Contenidos de un Componente

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 .

Publicado por:
Ricard Lou Torrijos
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon