windows下php7.4安装imagick、ImageMagick、GhostScript实现pdf转图片

实现word转pdf->pdf转图片->对转换后的图片处理完成后再生成pdf功能。

windows下php7.4安装imagick、ImageMagick、GhostScript实现pdf转图片

本地windows开发环境配置方式:

  1. 查看phpinfo确定需下载的imagick扩展类型,下载地址为:https://windows.php.net/downloads/pecl/releases/imagick 考虑到ImageMagick官网不支持历史版本下载,imagick扩展优先使用高版本,确保两者版本一致。

windows下php7.4安装imagick、ImageMagick、GhostScript实现pdf转图片

实际下载为:https://windows.php.net/downloads/pecl/releases/imagick/3.7.0/php_imagick-3.7.0-7.4-ts-vc15-x64.zip

  1. 将下载后的文件解压php_imagick.dll按常规扩展安装方式复制到ext文件夹,同时需将CORE_RL_*文件复制到apache目录下的bin目录中,php.ini添加 extension=imagick。重启apachephpinfo中显示imagick扩展已安装。
  2. ImageMagick supported formats中显示为0,按Imagick compiled with ImageMagick version中提示的对应版本下载ImageMagick
    实际下载为:https://windows.php.net/downloads/pecl/deps/ImageMagick-7.1.0-18-vc15-x64.zip
    解压后将bin目录添加到系统环境变量。
  3. 重启电脑
  4. 查看phpinfo是否正常或php –ri imagick

windows下php7.4安装imagick、ImageMagick、GhostScript实现pdf转图片

  1. 安装GhostScript,建议选择php_imagick.dll发布日期与GhostScript发布版本日期相近的版本。程序安装后默认自动添加到环境变量中。
    实际下载为:https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9561/gs9561w64.exe

linux下:


cd /usr/local/src/
wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10011/ghostpdl-10.01.1.tar.gz
tar zxvf ghostpdl-10.01.1.tar.gz
cd ghostpdl-10.01.1
./configure
make
make install

ln -s /usr/local/bin/gs /usr/bin/gs
gs -v
  1. 安装tecnickcom/tcpdf实现图片转pdf;安装spatie/pdf-to-image实现pdf转图片;

演示代码:


    <?php
    /**
     * Desc:
     * User: SenSen Wechat:1050575278
     * Date: 2022/05/09
     * Time: 10:18
     */
    namespace app\index\controller;
    
    use Spatie\PdfToImage\Pdf;
    
    class Test extends Auth
    {
        /**
         * pdf转img
         */
        public function pdf2img()
        {
            $pdf = new Pdf(root_path().'public/uploads/tmp/test.pdf');
            $pdf->setCompressionQuality(80);
            $pdf->saveAllPagesAsImages(root_path().'public/uploads/tmp');
            echo $pdf->getNumberOfPages();
        }
    
        /**
         * img转pdf
         */
        public function img2pdf()
        {
            $pdf = new \TCPDF();
            $pdf->SetMargins(0, 0, 0);
            $pdf->SetAutoPageBreak(false, 0);
            $pdf->setPrintFooter(false);
            $pdf->setPrintHeader(false);
            for ($i=1; $i<=3; $i++){
                $pdf->AddPage();
                $img_file = root_path().'public/uploads/tmp/'.$i.'.jpg';
                $pdf->Image($img_file, 0, 0, 210, 297, '', '', '', false, 300, '', false, false, 0);
            }
            $pdf->Output("img2pdf.pdf", 'D');
        }
    }

ghostscript文档:https://ghostscript.readthedocs.io/en/latest/

附件下载:

ImageMagick-7.1.0-18-vc15-x64.zip
php_imagick-3.7.0-7.4-ts-vc15-x64.zip

Tags: PHP

添加新评论