Je me suis bidouillé une fonction, adaptée à #SPIP, qui transforme un fichier #PDF en fichier JPEG. Ça fonctionne avec la commandeexec(convert)
, qui est curieusement assez largement répandue sur les hébergements mutualisés… (la fonction gère le système de cache des images converties, dans /local/cache-pdf
).
function convertir_pdf($img) {
$img = supprimer_timestamp($img);
if (!file_exists($img)) $img = supprimer_timestamp(extraire_attribut($img, "src"));
if (!file_exists($img)) return;
if (preg_match(",(.*)\.pdf,", $img, $regs)) {
$dest = $regs[1];
$dir_var = sous_repertoire (_DIR_VAR, 'cache-pdf');
$dest = $dir_var.substr($dest, strrpos($dest, "/")+1, strlen($dest)).".jpg";
if (file_exists($dest) && @filemtime($dest) > @filemtime($img)) {
return $dest;
} else {
exec('convert -density 144 "'.$img.'[0]" -colorspace RGB -resize 50% "'.$dest.'"', $output, $return_var);
return $dest;
}
return;
} else {
return;
}
}