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

So konvertieren Sie PDFs in PHP in Bilder

藏色散人
Freigeben: 2023-03-06 06:08:02
Original
4652 Leute haben es durchsucht

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.
Nach dem Login kopieren

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;
?>
Nach dem Login kopieren

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>";
}
?>
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage