php 将word 转为pdf 并转为图片

555 阅读1分钟

第一步服务器安装libreoffice扩展

 yum install libreoffice
 yum install libreoffice-headless
 yum -y install libreoffice-langpack-zh-Han*

第二步:安装imagemagick扩展 (这里我前面的文章有教程)

第三步:PHP将docx文件转为PDF文件,这里会在同目录下生成PDF文件(注意exec函数一定要接触禁用)

//php代码
exec("soffice --headless --invisible --convert-to pdf 111.docx")

第四步:使用我之前的PDF转为图片 直接调用这个静态方法

    /**
     * 将pdf文件转化为多张png图片
     * @param string $pdf  pdf所在路径 (/www/pdf/abc.pdf pdf所在的绝对路径)
     * @param string $path 新生成图片所在路径 (/www/pngs/)
     *
     * @return array|bool
     */
    public static function pdf2png($pdf)
    {

        $path = ROOT_PATH . 'public/uploads/wrodpng/';

        $im = new \Imagick();
        $im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
        $im->setCompressionQuality(100);
        $im->readImage($pdf);
//        $count = count($im); //word文档数量
        foreach ($im as $k => $v) {
            $v->setImageFormat('png');
//            //如果所有word的图片就用下面注释的代码
//            $fileName = $path . md5($k . time()) . '.png';
//            if ($v->writeImage($fileName) == true) {
//                $return[] = $fileName;
//            }
            $name = md5($k . time()) . '.png';
            $fileName = $path . $name;
            if ($v->writeImage($fileName) == true) {
                $data['image'][$k] = '/uploads/wrodpng/'.$name;
            }
        }
//        $data['count'] = $count;
        return $data;
    }

小伙伴们!这样就完成了哦! QQ学习交流群:842167453,欢迎小伙伴加入一起学习。