How to convert PDF to image in php: first install "GhostScript"; then use imagick to convert PDF to image.
Recommendation: "PHP Video Tutorial"
Use imagick in PHP to convert PDF into images
In the PHP Manual, the description of imagick is really concise. For each member function, click to open and you will see the following text:
Warning This function is currently not documented; only its argument list is available.
After just solving the PHP loading problem , it is very convenient to process images. I just found a paragraph on the 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; ?>
But what I want to use this extension to do is convert PDF to 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="How to convert pdf into pictures in php" ></a></div><p>"; } ?>
Is it similar to the one above? But it always fails. There is an exception on the readImage side. Check the error output:
PHP Fatal error: Uncaught exception 'ImagickException' with message 'PostscriptDelegateFailed `test.pdf': No such file or directory'
After searching on Baidu and Google for a long time, I finally had an idea. Didn't it say Postscript? I'm looking for it, I'm pretending.
This Postscript is actually GhostScript.
After installation, run, OK!
The above is the detailed content of How to convert pdf into pictures in php. For more information, please follow other related articles on the PHP Chinese website!