php 将pdf转png代码

首先,系统需要安装如下环境

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;
}

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注