Separar un pdf en imágenes con ImageMagick

Si por algún motivo queremos separar un pdf en imágenes (tantas como tenga el PDF) entonces utilizamos ImageMagick, específicamente la herramienta convert. El script ejemplo:

<?php
   $file = "/tmp/documento.pdf";
   //identificamos número de hojas
   $info = "/usr/bin/identify $file";
   $info = `$info`;
   preg_match_all("/[([0-9]{1,})]/",$info,$pag);
   $hojas = []; //usar $hojas = array(); en php viejos
   if(!empty($pag[1])) {
      $tmpfile = uniqid();
      foreach($pag[1] AS $hoja) {
         $img = "/tmp/".$tmpfile."-".$hoja.".jpg";
         $cmd = sprintf('convert -thumbnail 720 -density 300 -background white -flatten %s[%d] %s',$file,$hoja,$img);
         $cmd = `$cmd`;
         $hojas[$hoja] = $img;
      }
   }
   print_r($hojas);
   // $hojas tiene las imagenes del pdf
   // después se podría recorrer ese mismo arreglo para eliminar los .jpg temporales.

Teniendo el archivo "/tmp/documento.pdf" y ejecutando el script, nos daría algo como lo que sigue:

Es decir, tendremos 3 archivos imagen que conforman el PDF inicial. Una vez que se tienen las imágenes y en el script el arreglo de las mismas se puede hacer lo que sea necesario con ellas, borrarlas de ser necesario.

ps. la densidad, el ancho y demás se pueden ajustar para que sea más rápido el comando que convierte.

+ fotos / videos

Almacenado en PHP, convert, imagemagick

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Separar un pdf en imágenes con ImageMagick

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado miércoles 14 de julio de 2021, 09:57