PHP)中使用imagick实现把PDF转成图片
操作之前,先在linux服务器安装 ghostscript
650 2017-06-17 13:31:20 root cd ./soft
651 2017-06-17 13:31:25 root wget http://ghostscript.com/releases/ghostscript-8.71.tar.gz
652 2017-06-17 13:41:14 root tar zxvf ghostscript-8.71.tar.gz
653 2017-06-17 13:41:26 root cd ghostscript-8.71
654 2017-06-17 13:41:37 root ./configure --prefix=/usr
655 2017-06-17 13:42:06 root mkdir obj
656 2017-06-17 13:42:15 root mkdir bin
657 2017-06-17 13:42:23 root make all
658 2017-06-17 13:45:29 root make install
然后重启一下:
use Imagick;
/** * 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)) { echo dirname($pdf); echo "file not exit"; return false; } $im = new Imagick(); $im->setResolution(120,120); $im->setCompressionQuality(100);try { if($page==-1){ $im->readImage($pdf); }else{ $im->readImage($pdf."[".$page."]"); }} catch (\Exception $e) { Log::notice($e->getMessage());} foreach ($im as $Key => $Var) { $Var->setImageFormat(‘png‘); $filename = $path."/". md5($Key.time()).‘.png‘; if($Var->writeImage($filename) == true) { $Return[] = $filename; } } return $Return; } function cpdf2png() { $path="public/files";//请确保当前目录下有这个文件夹,由于一直要用,所以就不加检测了 $s=self::pdf2png("public/files/bp/36.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 src=\"".$s[$i]."\"></a></div><p>"; } }
完全是参考:http://www.jb51.net/article/60337.htm 这篇文章。非常感谢
时间: 2024-12-28 00:20:35