Os escribo porque tenía la necesidad de poder crear previsualizaciones en JPG de un fichero PDF.
Buscando por Internet encontré que se hace mediante ImageMagick y Ghostscript
Solicité a mi hosting que instalase esas dos librerías y el hosting me confirmó la instalación.
Aquí tenéis lo que me saca el PHP INFO:
El código de programación que estoy usando es muy muy simple:
Código PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
if (isset($_FILES["files"]) && !$_FILES["files"]["error"][0])
{
$file_extension = explode(".", $_FILES["files"]["name"][0]);
$file_extension = array_pop($file_extension);
//echo("Copiamos [".$_FILES["files"]["tmp_name"][0]."] en el siguiente destino [".$MOD_CLINICALGUIDELINES_config["FILES_DIR"].$id.".".$file_extension."]");
copy($_FILES["files"]["tmp_name"][0], "../images/guias_clinicas/files/prueba.pdf");
// Generamos imagen PREVIEW del PDF mediante ImageMagick + Ghostscript
// Especificamos el nombre del fichero y la página a procesar
$img = new imagick("../images/guias_clinicas/files/prueba.pdf[0]");
// Configuramos la compresion, en este caso generamos un JPG, pero el formato puede ser cualquiera
// de los soportados por imagick
$img->setCompression(Imagick::COMPRESSION_JPEG);
$img->setCompressionQuality(70);
$img->setImageFormat("jpg");
// Generamos el <a href="http://www.apliweb.com/tag/thumbnail" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Thumbnail">thumbnail</a>, indicando ancho y alto, si uno de los 2 parametros es 0, se ajustara la
// imagen al otro manteniendo las proporciones
$im->thumbnailImage(150, 0);
// Podemos escribir ahora en un fichero la imagen y almacenarla o mostrar por pantalla directamente:
// Si la queremos almacenar:
$img->writeImages("../images/guias_clinicas/files/prueba_thumb.jpg", true);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Thumb PDF</title>
</head>
<body>
<form method="post" action="<?php echo($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<input type="File" name="files[]"><br>
<input type="Submit" value="Enviar">
</form>
</body>
</html>
Cita:
¿Alguien puede echarme una mano y ver porqué está dándome este error al subir un PDF?Fatal error: Uncaught exception 'ImagickException' with message 'Postscript delegate failed `../images/guias_clinicas/files/prueba.pdf': @ error/pdf.c/ReadPDFImage/645' in /var/www/vhosts/XXXXXXXX/httpdocs/the_proyect/thumb_pdf.php:15 Stack trace: #0 /var/www/vhosts/XXXXXXXX/httpdocs/the_proyect/thumb_pdf.php(15): Imagick->__construct('../images/guias...') #1 {main} thrown in /var/www/vhosts/XXXXXXXX/httpdocs/the_proyect/thumb_pdf.php on line 15
Gracias y un saludo!!!
Javier