PHP Imagick 不适用于 Laravel 8 中的 PDF 文件,简单的 ImagickException

Posted

技术标签:

【中文标题】PHP Imagick 不适用于 Laravel 8 中的 PDF 文件,简单的 ImagickException【英文标题】:PHP Imagick dont work with PDF files in Laravel 8, simple ImagickException 【发布时间】:2021-12-19 14:27:16 【问题描述】:

我尝试第一次使用 Imagick 将 pdf 文件转换为图像,但它不适合我。 当我尝试将 Imagick 与图像文件一起使用时,它可以正常工作,问题出在 PDF 文件上。

我的测试 php 控制器:


namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Imagick;
class NewspaperController extends Controller


    /**
     * @throws \ImagickException
     */
    public function show()
    
        $imgExt = new Imagick();

        $imgExt->readImage(public_path('storage/uploads/test.pdf'));

       $imgExt->writeImages(public_path('storage/uploads/pdf_image_doc.jpg'), false);

        
        return view('xxx');
    

当我在浏览器中打开它时,我只收到“ImagickException”简单错误。

我在本地工作,与:

Laravel 8.54 Windows 11 XAMPP php 版本 8.0.7

phpinfo():

编译器 Visual C++ 2019 架构 x64 imagick 模块版本 3.5.1 使用 ImageMagick 版本 ImageMagick 7.0.7-11 Q16 x64 2017-11-23 编译的 Imagick Imagick 使用 ImageMagick 库版本 ImageMagick 7.0.7-25 Q16 x64 2018-03-04 ImageMagick 发布日期 2018-03-04 ImageMagick 支持的格式数量:240

谁能帮忙?

【问题讨论】:

你知道确切的例外吗?如果没有,那么您是否安装了 Ghostscript?您的 ImageMagick 政策是否限制使用 PDF/PS/EPS 文件?将 Ghostscript 的完整路径作为“gs”的前言放在 ImageMagick 中的 delegates.xml 文件的相应行中。 【参考方案1】:

Imagick 有一个可修复此错误的候选版本。升级到 Laravel 8 后,我们遇到了同样的问题。

新的候选版本于 2021 年 11 月 10 日发布(发布后 6 天)。 https://windows.php.net/downloads/pecl/releases/imagick/3.6.0rc1/

【讨论】:

以上是关于PHP Imagick 不适用于 Laravel 8 中的 PDF 文件,简单的 ImagickException的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 需要 Mcrypt PHP 扩展。不适用于 cron 作业

php artisan migrate 不适用于 Laravel 5.4 中的 XAMPP

file_put_contents 不适用于 json laravel 和 php

barryvdh/laravel-cors 不适用于我的路线

Laravel 使用 Intervention/image 配置和修改驱动 imagick

Laravel Schedule withoutOverlapping() 不适用于 runInBackground()