首先,系统需要安装如下环境
1.系统imagemagick
2.php插件imagick
3.系统ghostscript
function count_pages($pdfFileUrl) {
$pdfText = file_get_contents($pdfFileUrl);
$num = preg_match_all("/\/Page\W/", $pdfText, $dummy);
return $num;
}
function pdf2png($PDF,$page=-1){
if(!extension_loaded('imagick')){
return false;
}
if(!file_exists(__DIR__.'/'.$PDF)){
return false;
}
$num = count_pages(__DIR__.'/'.$PDF);
if($num == 0){
return false;
}
$IM = new imagick();
//$pdfResolution=getimagesize(__DIR__.'/'.$PDF);
//$IM->setResolution($pdfResolution[0], $pdfResolution[1]);
$IM->setResolution(1123, 794);
$IM->setCompressionQuality(100);
$IM->readImage(__DIR__.'/'.$PDF);
if ($page == -1){
$IM->readImage(__DIR__.'/'.$PDF);
}else{
//指定页
$IM->readImage(__DIR__.'/'.$PDF . "[" . $page . "]");
}
$i=1;
foreach($IM as $Key => $Var){
$Var->setImageFormat('png');
$Filename = __DIR__.'/'.$PDF.'_'.$i.'.png';
if($Var->writeImage($Filename)==true){
$fileList[]= $Filename;
}
$i++;
}
$IM->clear();
$IM->destroy();
//生成压缩包
/*
$zfilename = __DIR__.'/'.$PDF.".zip";
$zip = new ZipArchive();
$zip->open($zfilename,ZipArchive::CREATE); //打开压缩包
foreach($fileList as $file){
$zip->addFile($file,basename($file)); //向压缩包中添加文件
}
$zip->close(); //关闭压缩包
*/
//return $fileList;
}