Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/11/2010, 11:04
porito
 
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