Crear un Thumbnail de un sitio
Vamos a crea una imagen de algún sitio web. En este caso vamos a
utilizar Java y un framework llamado WKhtmltopdf. Realmente es muy bueno y
generar los pdf o imágenes muy rápido. Lo primero que debemos hacer es ir al
siguiente link http://wkhtmltopdf.org/ y descargar la versión que necesitamos.
Cuentan con versión para Windows, Linux, OS, FreeBDS, etc.
Después de descargar el que requiere su sistema operativo vamos a
instalarlo en nuestras maquinas. En mi caso estoy usando Windows 7.
Cuando ya tenemos nuestro sistema para crear PDF o imágenes vamos a
crear un pequeño proyecto en Java con el nombre de webtoImage.
Lo que realmente vamos hacer con nuestro proyecto en Java es llamar el
framework con los parámetros requeridos para poder generar las imágenes o el
pdf.
Lo primero que debemos conocer es donde se encuentra ubicado el
framework que instalamos. Ya que al final lo que vamos hacer es ejecutar el
framewok con los parámetros que necesitamos.
Para nuestro ejemplo vamos hacer el llamado de dos formas diferentes. Vamos
buscar el sitio que deseamos transformar en pdf e imagen.
En el caso de las imágenes vamos a crear un ProccessBuilder que se
encargara de hacer el llamado al framework con los parámetros necesarios para
poder crear el pdf. Se requiere el link que vamos a llamar htmlFilePath, luego
donde los vamos a guardar que vamos a llamar pdfFilePath y finalmente la dirección
de donde está el framework y esos parámetros nos permitirán crear nuestro pdf.
Y vamos usar el sistema wkhtmltopdf.exe.
Luego vamos hacer la imagen. Para este vamos a usar wkhtmltoimage.exe. En este caso vamos a utilizar la librería Runtime para invocar el framework. Vamos a enviar los parámetros necesarios para poder crear la imagen con su nombre, formato, etc.String webKitLocation="C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe"; //primero vamos a crear el PDF String htmlFilePath = "http://www.amazon.com/"; String pdfFilePath = "C:\\TempPicture\\result.pdf"; ProcessBuilder pb = new ProcessBuilder(webKitLocation, htmlFilePath, pdfFilePath); pb.redirectErrorStream(true); Process process = pb.start(); BufferedReader inStreamReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = inStreamReader.readLine(); while(line != null) { System.out.println(line); line = inStreamReader.readLine(); }
//Para las imagenes
pdfFilePath = "C:\\TempPicture\\result.png";
webKitLocation="C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltoimage.exe";
Runtime rt = Runtime.getRuntime() ;
Process p = rt.exec(webKitLocation + " --quality 10 --height 800 --height 600 --format png "
+ htmlFilePath + " " +pdfFilePath) ;
Ahora podemos ver el pdf y la imagen en la carpeta de destino que
agregamos. Si quieren aprender más sobre el framework y los parámetros que se
le pueden enviar es solo cuestión de investigar en la documentación del
framework.
Para
descargar el ejemplo puede darle clic aquí
Etiquetas: Desarrollo