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
no funcionó u.u
Hola,
En el artículo esta muy claro que debes tener instalado ImageMagick en tu servidor, si lo tienes seguro que te funciona, sino, ni lo intentes.
Saludos,
Hola estoy trabajando con imagemagick y tengo la siguiente funcion para converit pdf a jpg:
function convertPDFAJPG($pdf_file,$jpgloc)
{
$cmd=»convert «.$pdf_file.» «.$jpgloc;
$status=exec($cmd);
$convert_status=$status;
return $convert_status;
}
$pdf_file es mi archivo pdf y $jpgloc es la ubiacion donde se guardaran mis imagenes.
todo me sale exelente, pero el tamaño de la imagen convertida es 473 x 672, es muy chica.. como puedo cambiar el tamaño en esta funcion.
he trado de usar:
resizeImage(992, 1403, imagick::FILTER_UNDEFINED, 0);
pero no sale… si usted sabe algo porfavor me podria ayudar
Hay alguna manera de probar esto de manera local con xampp
si, seguro. lo único que debes asegurarte es de tener activo el modulo GD
Y para hacer lo mismo pero a la inversa de jpg a pdf??
donde puedo ver como se instala ImageMagick, o podrian poner un post gracias.
en su pagina oficial puedes encontrar toda la información http://www.imagemagick.org/script/binary-releases.php
saludos,
En la pagina http://www.heraldicadeapellidos.com he instalado fpdf que devuelve un pdf que se arma de una base de datos mysql. Sería posible devolver un jpg en lugar del pdf. Como podría hacerlo?
Este artículo explica precisamente eso, simplemente lo que no debes hacer es hacer output del pdf al navegador sino guardarlo primero como archivo en el servidor y luego hacer la conversión de pdf a jpg.
Saludos,
Funciona a la Perfeccion
Ahora guardo el pdf en el servidor y le aplico convert como me decias pero quiero mejorar la calidad de la imagen. Como se puede controlar la resolucion del jpg. Saludos y gracias
ami no me funciono 🙁
y si tengo instalado magick