Foros del Web » Programación para mayores de 30 ;) » Java »

exportar a pdf/jpg desde java(netbeans)

Estas en el tema de exportar a pdf/jpg desde java(netbeans) en el foro de Java en Foros del Web. Hola, me gustaria sabe si es posible exportar una "ventana" JDialog a pdf y/o jpg. Es decir, ya se como exportar un jTable a excel, ...
  #1 (permalink)  
Antiguo 23/11/2010, 06:37
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 10 meses
Puntos: 0
exportar a pdf/jpg desde java(netbeans)

Hola,

me gustaria sabe si es posible exportar una "ventana" JDialog a pdf y/o jpg.

Es decir, ya se como exportar un jTable a excel, pero en este caso, necesito que una ventana JDialog, donde tengo una serie de componentes(jSeparators,buttons,jlabels...) se pueda exportar a pdf o jpg.

Como hacer una captura, pero mediante un boton. Y al ser posible, que tampoco exporte toda la ventana, sino una parte, decirle yo con valores el rango que quiero que exporte,...nose.

Alguien sabe como?

Un saludo.
  #2 (permalink)  
Antiguo 23/11/2010, 07:54
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: exportar a pdf/jpg desde java(netbeans)

Hola:

Podrías empezar utilizando la clase Robot (java.awt.Robot). Tiene un método interesante llamado:
createScreenCapture(Rectangle r)
q hace una captura de la pantalla en dependencia de las coordenadas q le pasas.
Docs: http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html


slds;

Nup_
  #3 (permalink)  
Antiguo 23/11/2010, 11:04
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: exportar a pdf/jpg desde java(netbeans)

Cita:
Iniciado por nup_ Ver Mensaje
Hola:

Podrías empezar utilizando la clase Robot (java.awt.Robot). Tiene un método interesante llamado:
createScreenCapture(Rectangle r)
q hace una captura de la pantalla en dependencia de las coordenadas q le pasas.
Docs: http://download.oracle.com/javase/1....awt/Robot.html
slds;

Nup_
Gracias por la informacion. No conocia esa clase.

Buscando un poco he encontrado estas 2 clases:

La primera hace que se espere un poco, 5 segundos, para hacer la captura.

Código:
public class CapturarPantalla{

    static public void captureScreen(String fileName) throws Exception {
        Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle screenRectangle = new Rectangle(screenSize);
        Robot robot = new Robot();
        BufferedImage image = robot.createScreenCapture(screenRectangle);
        ImageIO.write(image, "png", new File(fileName));
    }
//----
    public static void main(String[] args) {
        try
        {
            System.out.println("[ Captura iniciada ]");
            //sleep 5 sg
            Thread.currentThread().sleep(5*1000);
            String FILENAME="captura01.jpg";
            CapturarPantalla.captureScreen(FILENAME);
            System.out.println("[ Captura finalizada ]");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
//----
}
//end of class Captura
Y en esta segunda lo hace directamente:
Código:
class CapturarPantalla {
  public static void main(String args[])
        throws AWTException, IOException {
     // captura la pantalla completa
     BufferedImage pantalla = new Robot().createScreenCapture(
     new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );
     // Lo guarda como un JPEG
     File file = new File("pantalla.jpg");
     ImageIO.write(pantalla, "jpg", file);
   }
}

Pero el problema es que me lo hace de toda la pantalla, y nose como decirle que lo haga solo de un trozo determinado. Es decir, darle las medidas.

Ademas, estas clases funcionan al ejecutarlas, pero yo necesito que desde mi aplicacion, desde un boton que tendra "GUARDAR", pues que se guarde la imagen, y que te de a elegir el nombre y la ruta. Porque sino siempre se me guardara con el mismo nombre y me lo sobreescribira....

alguna idea?

gracias
  #4 (permalink)  
Antiguo 23/11/2010, 13:55
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: exportar a pdf/jpg desde java(netbeans)

Hola:

Prueba con esto:
http://www.koders.com/java/fid1C30AAD3200D1E62F58993125442DD0B1E298CFE.aspx?s =CLASS#L32

la parte del código q interesa es:
BufferedImage bi = new BufferedImage (window.getWidth(), window.getHeight(), BufferedImage.TYPE_INT_RGB);
window.paintAll(bi.createGraphics());

donde window es el jdialog q quieres salvar a la imagen.

slds;

Nup_
  #5 (permalink)  
Antiguo 24/11/2010, 17:59
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: exportar a pdf/jpg desde java(netbeans)

Cita:
Iniciado por nup_ Ver Mensaje
Hola:

Prueba con esto:
http://www.koders.com/java/fid1C30AA...px?s=CLASS#L32

la parte del código q interesa es:
BufferedImage bi = new BufferedImage (window.getWidth(), window.getHeight(), BufferedImage.TYPE_INT_RGB);
window.paintAll(bi.createGraphics());

donde window es el jdialog q quieres salvar a la imagen.

slds;

Nup_
Gracias.
Me da bastantes errores el codigo, entre otras cosas algunos imports, que me dicen que no existen con lo que significa que necesito dichas librerias

Y una pregunta, la solucion que necesito, me debe guardar toda la ventana, incluso lo que no esta "visible" por culpa del scroollbar.... eso es posible?
Mi ventana es mas grande que el monitor, por lo que he tenido que poner un jScroolpanel, por lo que a la hora de capturar tiene que ser toda la ventana...

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:20.