Maison  >  Article  >  développement back-end  >  Comment convertir un pdf en images en php

Comment convertir un pdf en images en php

藏色散人
藏色散人original
2020-09-27 14:45:024607parcourir

Comment convertir un PDF en image en PHP : installez d'abord "GhostScript" puis utilisez imagick pour convertir un PDF en image.

Comment convertir un pdf en images en php

Recommandé : "Tutoriel vidéo PHP"

Utilisez imagick en PHP pour convertir des PDF en images

Dans le manuel PHP, la description d'imagick est vraiment concise. Pour chaque fonction membre, cliquez pour ouvrir et vous verrez le texte suivant :

Warning
This function is currently not documented; only its argument list is available.

Après avoir simplement résolu le chargement de PHP. problème, c'est très pratique pour traiter des images. J'ai trouvé un paragraphe sur Internet :

<?php
Header("Content-type: image/jpeg");    
/**
* 缩小图片尺寸.
*
* @param $image 待处理的二进制图片
* @param $width 处理后图片尺寸的宽度(px)
* @param $height 处理后图片尺寸的高度(px)
* @param $crop 是否裁剪图片
*
* @return 处理好的二进制图片
*/
function resize($image, $width, $height, $crop)
{
   $imagick = new Imagick($image);
   $w = $imagick->getImageWidth();
   $h = $imagick->getImageHeight();
   if ($w > $width || $h > $height)
   {
      if ($crop)
      {
         $imagick->cropThumbnailImage($width, $height);
      }
      else
      {
         $imagick->resizeImage($width, $height, Imagick::FILTER_LANCZOS, 1, true);
      }
   }
   $processed_image = $imagick->getImageBlob();
   return $processed_image;
}
$s=resize("123.jpg", 60, 40, 1);
echo $s;
?>

Mais ce que je veux utiliser cette extension, c'est convertir un PDF en PNG. PDF !

<?php
/**
* PDF2PNG
* @param $pdf  待处理的PDF文件
* @param $path 待保存的图片路径
* @param $page 待导出的页面 -1为全部 0为第一页 1为第二页
* @return      保存好的图片路径和文件名
*/
 function pdf2png($pdf,$path,$page=-1)
{  
   if(!extension_loaded(&#39;imagick&#39;))
   {  
       return false;  
   }  
   if(!file_exists($pdf))
   {  
       return false;  
   }  
   $im = new Imagick();  
   $im->setResolution(120,120);  
   $im->setCompressionQuality(100);
   if($page==-1)   
      $im->readImage($pdf);
   else
      $im->readImage($pdf."[".$page."]");
   foreach ($im as $Key => $Var)
   {  
       $Var->setImageFormat(&#39;png&#39;);  
       $filename = $path."/". md5($Key.time()).&#39;.png&#39;;
       if($Var->writeImage($filename) == true)
       {  
           $Return[] = $filename;  
       }  
   }  
   return $Return;  
}  
$path="images";//请确保当前目录下有这个文件夹,由于一直要用,所以就不加检测了
$s=pdf2png("test.pdf",$path);
$scount=count($s);
for($i=0;$i<$scount;$i++)
{
   echo "<div align=center><font color=red>Page ".($i+1)."</font><br><a href="".$s[$i]."" target=_blank><img  border=3 height=120    style="max-width:90%".$s[$i]."" alt="Comment convertir un pdf en images en php" ></a></div><p>";
}
?>

Est-ce similaire à celui ci-dessus ? Mais cela échoue toujours. Il y a une exception dans readImage. Vérifiez la sortie d'erreur :

PHP Fatal error:  Uncaught exception &#39;ImagickException&#39; with message &#39;PostscriptDelegateFailed `test.pdf&#39;: No such file or directory&#39;

Après une longue recherche sur Baidu et Google, j'ai finalement eu une idée. Je le cherche, je fais semblant.

Ce Postscript est en fait GhostScript.

Après l'avoir installé, lancez-le et c'est OK !

Comment convertir un pdf en images en php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn