Comment convertir un PDF en image en PHP : installez d'abord "GhostScript" puis utilisez imagick pour convertir un PDF en image.
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('imagick')) { 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('png'); $filename = $path."/". md5($Key.time()).'.png'; 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 'ImagickException' with message 'PostscriptDelegateFailed `test.pdf': No such file or directory'
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 !
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!