PHP PDF文件转图片

  • Post author:
  • Post category:php


废话不多说?直接上代码?

/**
     * PDF2PNG
     * @param $pdf 待处理的PDF文件
     * @param $path 待保存的图片路径
     * @param int $page 待导出的页面 -1为全部 0为第一页 1为第二页
     * @return array|bool 保存好的图片路径和文件名
     * @throws \ImagickException
     * 注:此处为坑 对于Imagick中的$pdf路径 和$path路径来说,   php版本为5+ 可以使用相对路径。php7+版本必须使用绝对路径。所以,建议大伙使用绝对路径。
     */
    public function pdf2png($pdf, $path, $page = -1)
    {
        if (!extension_loaded('imagick')) {
            return false;
        }
        if (!file_exists($pdf)) {
            return false;
        }
        if (!is_readable($pdf)) {
            return false;
        }

//        echo 222;die;
        $im = new Imagick();
        $im->setResolution(150, 150);
        $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;
            }
        }
        //返回转化图片数组,由于pdf可能多页,此处返回二维数组。
        return $Return;
    }

前提要装PHP扩展,(Imagick扩展,具体怎么装请自行百度哈),

当然还有一个必不可少的可以说是插件吧(Ghostscript) 自行百度安装!



版权声明:本文为MZHUANG_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。