Wkhtmltoimage es una aplicación muy útil para crear capturas de pantalla de un sitio web o página web. Algunas veces requerimos crear una captura de pantalla de las páginas web y almacenarlas en nuestro sistema. Utiliza el motor de renderizado QT Webkit para crear imágenes en varios formatos. Este artículo le ayudará a capturar capturas de pantalla de una página web utilizando un script php y la línea de comandos de Linux.
Paso 1:Instale wkhtmltoimage en Linux
Descargue wkhtmltoimage desde el código de Google e instálelo en su sistema Linux siguiendo los siguientes pasos.
# cd /opt # wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/wkhtmltox-linux-i386_0.12.0-03c001d.tar.xz # tar xJf wkhtmltox-linux-i386_0.12.0-03c001d.tar.xz # ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage # chown apache:apache /usr/bin/wkhtmltoimage # chmod +x /usr/bin/wkhtmltoimage
Paso 2:crear una imagen mediante la línea de comandos
Primero verifique el script wkhtmltoimage usando la línea de comandos de Linux. El siguiente comando tomará una captura de pantalla de http://google.com y crea una imagen con el nombre google.jpg.
# /usr/bin/wkhtmltoimage --no-images --load-error-handling ignore http://google.com google.jpg
Paso 3:Código PHP para crear una imagen
Use el siguiente código php para generar una imagen desde html (url del sitio web). Este script requería tener habilitada la función shell_exec para Apache. La mayoría de los proveedores de alojamiento compartido no permiten esta función.
Cree un nombre de archivo getImage.php y pon debajo del código:
PHP
123456789 | <?php $url =$_GET['url']; // URL del sitio web para crear la imagen$name =$_GET['img']; // Nombre de la imagen de salida$comando ="/usr/bin/wkhtmltoimage --no-images --load-error-handling ignore";$dir_img ="/var/www/html/images/"; // Los archivos de imagen se guardarán aquí $ex_cmd ="$comando $url " . $dir_img. $nombre;$salida =shell_exec($ex_cmd);?> |
123456789101112131415 | <?php $url =str_replace('index.php','', $_SERVER['PHP_SELF']);$url =str_replace($url,'',$_SERVER[' SOLICITUD_URI']);$url =explotar('/',$url);$nombre =array_shift($url);$weburl =array_shift($url); $command ="/usr/bin/wkhtmltoimage --no-images --load-error-handling ignore";$dir_img ="/var/www/html/getImage/images/"; // Los archivos de imagen se guardarán aquí $ex_cmd ="$command $weburl " . $dir_img. $nombre;$salida =shell_exec($ex_cmd);echo "<img src="/getImage/images/$nombre" >"; // comente esto para deshabilitar la visualización de imágenes en la página ?> |