Separar un pdf en imágenes con ImageMagick

PDF varias hojas

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."_s.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:

resultado script

 

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.

PHP, convert, imagemagick

por Jorge Martínez Mauricio :)

¿Algo que comentar?


Populares estos días

    Suscríbete por correo electrónico, recibirás los nuevos escritos antes que nadie y es gratis 😊


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