Skip to content

Instantly share code, notes, and snippets.

@pabloselin
Created June 2, 2014 14:34
Show Gist options
  • Save pabloselin/be28c3074cbfaf828b41 to your computer and use it in GitHub Desktop.
Save pabloselin/be28c3074cbfaf828b41 to your computer and use it in GitHub Desktop.
Cómo convertir la primera página de un PDF a jpg
<?php
function apie_pdfpagetojpg($attchid) {
//Verificar que se trata de un pdf
$mimtype = get_post_mime_type($attchid);
//Chequeos previos
//Obtener la ruta y el nombre del archivo
$archivo=get_attached_file($attchid);
$uploadsdir= wp_upload_dir();
//Lo dejamos en un directorio separado de los uploads vía admin para mejor diferenciación, y además, es más práctico si luego queremos convertir esta función en un plugin
$img_path = $uploadsdir['basedir'] . '/pdfsnaps';
$img_url = $uploadsdir['baseurl'] . '/pdfsnaps';
//Crear el archivo con un prefijo y vinculado al ID del attachment para poder comprobar su creación.
$file_name='art-' . $attchid;
//Chequear si el archivo es un pdf, y además si es que no hemos creado el archivo previamente
if($mimtype == 'application/pdf' && !file_exists($img_path .'/'. $file_name . '.jpg')) {
// Conversión de archivo usando imagemagick
$dir="/usr/bin/convert";
// Parámetros deseados para la conversión desde un PDF
$comando="$dir -colorspace RGB -resize 300 -interlace none -density 200 -quality 100 {$archivo}[0] $img_path/$file_name.jpg";
exec($comando,$out);
$image=imagecreatefromjpeg($img_path . '/' . $file_name . '.jpg');
//La siguiente línea me da un error en WP, no sé aún si es que hace algo muy importante, dado que de todas formas tengo mi JPG al final.
//header('Content-Type: image/jpeg');
$image =imagejpeg($image, $img_path . '/' . $file_name . '.jpg');
//unlink("$img_path/$file_name.jpg");
// Me devuelve un comentario para saber si creó el archivo o está usando uno viejo
echo '<!--Archivo no existe-->';
echo '<img src="'.$img_url.'/'.$file_name .'.jpg">';
} elseif(file_exists($img_path .'/'. $file_name . '.jpg')) {
echo 'Archivo existe';
echo '<img src="'.$img_url.'/'.$file_name . '.jpg">';
} else {
//Alega si es que no es un PDF, probablemente aquí se puede poner una imagen genérica de relleno.
echo 'No es un pdf';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment