Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie PDFs in PHP in Bilder

So konvertieren Sie PDFs in PHP in Bilder

藏色散人
藏色散人Original
2020-09-27 14:45:024649Durchsuche

So konvertieren Sie PDF in ein Bild in PHP: Installieren Sie zuerst „GhostScript“ und konvertieren Sie dann das PDF in ein Bild.

So konvertieren Sie PDFs in PHP in Bilder

Empfohlen: „PHP-Video-Tutorial

Verwenden Sie imagick in PHP, um PDF in Bilder umzuwandeln

Im PHP-Handbuch ist die Beschreibung von imagick sehr prägnant und jede Mitgliedsfunktion ist per Mausklick zu bedienen Öffnen Sie es und Sie sehen den folgenden Text:

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

Nachdem ich gerade das PHP-Ladeproblem gelöst habe, ist es sehr praktisch, Bilder online zu verarbeiten:

<?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;
?>

Aber ich möchte diese Erweiterung verwenden, um sie zu konvertieren PDF zu 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="So konvertieren Sie PDFs in PHP in Bilder" ></a></div><p>";
}
?>

Ist es ähnlich wie oben? Aber es schlägt immer fehl. Es gibt eine Ausnahme auf der readImage-Seite:

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

Nachdem ich lange auf Baidu und Google gesucht hatte, hatte ich endlich eine Idee. Ich suche danach, ich tue so.

Dieses Postscript ist eigentlich GhostScript.

Nach der Installation führen Sie es aus und es ist in Ordnung!

So konvertieren Sie PDFs in PHP in Bilder

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie PDFs in PHP in Bilder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn