Fatal error: Uncaught ImagickException: PDFDelegateFailed `The system cannot find the file specified

Fatal error: Uncaught ImagickException: PDFDelegateFailed `The system cannot find the file specified

我想将 pdf 文件转换为 jpg。我正确安装了 imagick 我安装了 ghoscript 9.53.3 64x 但我收到了这个错误。我把ghoscript/bin和lib路径放在环境变量里了

Fatal error: Uncaught ImagickException: PDFDelegateFailed `The system cannot find the file specified. ' @ error/pdf.c/ReadPDFImage/794 in C:\xampp7.4\htdocs\kOnline\vendor\spatie\pdf-to-image\src\Pdf.php:40 Stack trace: #0 C:\xampp7.4\htdocs\kOnline\vendor\spatie\pdf-to-image\src\Pdf.php(40): Imagick->pingimage('C:/xampp7.4/htd...') #1 C:\xampp7.4\htdocs\kOnline\pdfToImaage.php(8): Spatie\PdfToImage\Pdf->__construct('C:/xampp7.4/htd...') #2 {main} thrown in C:\xampp7.4\htdocs\kOnline\vendor\spatie\pdf-to-image\src\Pdf.php on line 40

我的代码:

$pdf = new Spatie\PdfToImage\Pdf($pathToPdf);


foreach (range(1, $pdf->getNumberOfPages()) as $pageNumber) {

    $pdf->setPage($pageNumber);

    $pdf->saveImage("Image_name".$pageNumber.".png");
}

PHP 版本 7.4.11

Apache 版本 Apache/2.4.46 (Win64) OpenSSL/1.1.1g PHP/7.4.11

ghoscript 9.53.3 64x

imagick 模块版本 3.4.4

OS windows 10 64x

我卸载了 ghoscript 9.53.3 并安装了 ghoscript 9.26。安装后我重新启动了系统。就这样,我的问题就解决了。

有同样的问题。 在旧版本的 ghostscript 中,可执行文件被命名为“gs.exe”,在新版本中它被命名为“gswin32c.exe”(或“gswin64c.exe”)。我认为 gs.exe-call 在某处被硬编码到 imagick-extension 中。 作为解决方法,只需将文件重命名为“gs.exe”或将重命名的副本放入此目录。

我正在使用 gs9.54.0

将 ghostscript 路径添加到 PATH,在我的例子中 c:\softkit\gs\gs9.54.0\bin\ 并将 gswin64.exe 重命名为 gs.exe 解决了这个问题。

看来 imagick 确实在寻找 gs.exe

1- 从站点下载: https://mlocati.github.io/articles/php-windows-imagick.html 如果 php 7.3: php_imagick-3.6.0-7.3-ts-vc15-x64.zip 如果 php 7.4: php_imagick-3.6.0-7.4-ts-vc15-x64.zip 如果 php 8.0: php_imagick-3.6.0-8.0-ts-vs16-x64.zip

2-解压对应PHP版本的那个 A- 获取名为:php_imagick.dll 的 DLL 并将其放在目录 C:/laragon/bin/php/php-7.3.23-Win32-VC15-x64/ext B- 把所有其他的 DLL 放到目录 C:/laragon/bin/php/php-7.3.23-Win32-VC15-x64

3- 打开PHP.ini文件,在有的地方插入一行 精确地扩展并写在那里: 扩展名 = php_imagick.dll

4- 停止 APACH 服务器并执行 phpinfo();查看 如果库已正确安装所有 可以扩展

///////////////////////// 如果您想处理来自 imagick 的 PDF,请继续执行以下步骤 /////////////////////////

5- 然后,你必须安装 ghoscript 软件 以下 url:https://www.ghostscript.com/releases/gsdnld.html 例如安装运行良好的 x64 位版本

6- 然后,进入目录 C:/程序Files/gs/gs9.55.0/bin A- 复制 gswin64.exe 文件 B- 将副本重命名为 gs.exe

7- 添加目录C:/Program Files/gs/gs9.55.0/bin 在 PATH 环境变量中(用户) 为此,请转到搜索 WINDOWS 并键入 env + enter 转到环境变量并添加之后 丢失的目录

8-超级重要,关闭LARAGON软件(完全) 然后将其重新打开 LARAGON,此时,一切都应该正常运行

我使用的是this link

中提供的版本

而且我不得不将我的 ghostscript 降级为 v5.26 并且它起作用了。使用最新版本的 GS 服务器没有响应。

你还必须:

  1. 复制C:\Program Files\gs\gs9.25\bin\gswin64.exe
  2. 重命名为 gs.exe
  3. 在环境变量PATH中添加C:\Program Files\gs\gs9.25\bin(可能你的系统安装路径是other)