Hace días alguien del equipo de desarrollo de evoluZiona Sas necesitaba obtener la primera página de un PDF pero en formato JPG con PHP, obviamente de forma dinámica porque era para resolver un problema que nos asechaba desde hace ya algún tiempo.

La solución para el problema la dimos con imagemagick, específicamente con el comando convert, lo que hicimos fue instalar esta herramienta en el servidor y luego usarla con PHP mediante la función exec, aquí el código:

$archivo="archivo_pdf_de_donde_sacaremos_el_jpg.pdf";
$img_path="/tmp"; //ruta temporal para guardar el jpg
$file_name=time();
$dir="/usr/bin/convert";
$comando="$dir {$archivo}[0] $img_path/$file_name.jpg";
exec($comando,$out);

$image=imagecreatefromjpeg("$img_path/$file_name.jpg");
header('Content-Type: image/jpeg');
imagejpeg($image);
unlink("$img_path/$file_name.jpg");

El comando convert recibe los siguiente parametros:

  • ruta del archivo PDF. Entre corchetes se coloca el rango de paginas a convertir en JPG, puede ser una página en especifico o un rango determinado, [0] , [0-100]. Tengan en cuenta que en linux se empieza a numerar desde cero, lo que quiere decir que la primera página vendría siendo la página 0
  • Ruta destino donde se guardará el JPG