spatie / pdf-to-image

Convert a pdf to an image
https://murze.be/2015/07/convert-a-pdf-to-an-image-using-php/
MIT License
1.3k stars 228 forks source link

My script can save a jpg but not a pdf #238

Closed spitfire64 closed 1 month ago

spitfire64 commented 1 month ago

In my Laravel Controller, Operation 1 runs but Operations 2 throws an error. Code:

<?php

namespace App\Http\Controllers;

use Intervention\Image\Laravel\Facades\Image;

class ImageController extends Controller
{
    public function index()
    {
        // Operation 1
        $pdf = new \Spatie\PdfToImage\Pdf(storage_path('app/images/x.jpg'));
        $pdf->save(storage_path('app/images2/'));
        // Operation 2
        $pdf = new \Spatie\PdfToImage\Pdf(storage_path('app/images/sample.pdf'));
        $pdf->save(storage_path('app/images2/')); // LARAVEL MARK THIS ROW AS ERROR
    }
}

When I set 'driver' => \Intervention\Image\Drivers\Gd\Driver::class,, I get this error:

[2024-08-10 11:00:04] local.ERROR: FailedToExecuteCommand `"gs" -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r144x144" -dPrinted=false -dFirstPage=1 -dLastPage=1 "-sOutputFile=C:/Users/marte/AppData/Local/Temp/magick-cfrRU7spRISPfPSwpuJO7kT2evZ1ezup%d" "-fC:/Users/marte/AppData/Local/Temp/magick-JFnQ-OelqKItOrWVnsK7QhYrAKMmGyV4" "-fC:/Users/marte/AppData/Local/Temp/magick-J5yJ3zLEK6t3bavOxRPwO7Mdw7HhQXv4"' (Det g�r inte att hitta filen.
) @ error/delegate.c/ExternalDelegateCommand/516 {"userId":1,"exception":"[object] (ImagickException(code: 415): FailedToExecuteCommand `\"gs\" -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 \"-sDEVICE=pngalpha\" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \"-r144x144\" -dPrinted=false -dFirstPage=1 -dLastPage=1 \"-sOutputFile=C:/Users/marte/AppData/Local/Temp/magick-cfrRU7spRISPfPSwpuJO7kT2evZ1ezup%d\" \"-fC:/Users/marte/AppData/Local/Temp/magick-JFnQ-OelqKItOrWVnsK7QhYrAKMmGyV4\" \"-fC:/Users/marte/AppData/Local/Temp/magick-J5yJ3zLEK6t3bavOxRPwO7Mdw7HhQXv4\"' (Det g�r inte att hitta filen.

) @ error/delegate.c/ExternalDelegateCommand/516 at C:\\xampp\\htdocs\\livewire3\\vendor\\spatie\\pdf-to-image\\src\\Pdf.php:235)
[stacktrace]

If I change driver to 'driver' => \Intervention\Image\Drivers\Imagick\Driver::class,, I get this error:

[2024-08-10 11:02:07] local.ERROR: FailedToExecuteCommand `"gs" -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r144x144" -dPrinted=false -dFirstPage=1 -dLastPage=1 "-sOutputFile=C:/Users/marte/AppData/Local/Temp/magick-porgRafJIIfS0yETAu1ZpwtWWDtZIYes%d" "-fC:/Users/marte/AppData/Local/Temp/magick-lInXrSUxZoKMNRQWoXlPsXd10ZOU2Wz5" "-fC:/Users/marte/AppData/Local/Temp/magick-PrsCOcQ_9gsy6NQZNfp-XjabDiinPLZh"' (Det g�r inte att hitta filen.
) @ error/delegate.c/ExternalDelegateCommand/516 {"userId":1,"exception":"[object] (ImagickException(code: 415): FailedToExecuteCommand `\"gs\" -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 \"-sDEVICE=pngalpha\" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \"-r144x144\" -dPrinted=false -dFirstPage=1 -dLastPage=1 \"-sOutputFile=C:/Users/marte/AppData/Local/Temp/magick-porgRafJIIfS0yETAu1ZpwtWWDtZIYes%d\" \"-fC:/Users/marte/AppData/Local/Temp/magick-lInXrSUxZoKMNRQWoXlPsXd10ZOU2Wz5\" \"-fC:/Users/marte/AppData/Local/Temp/magick-PrsCOcQ_9gsy6NQZNfp-XjabDiinPLZh\"' (Det g�r inte att hitta filen.

) @ error/delegate.c/ExternalDelegateCommand/516 at C:\\xampp\\htdocs\\livewire3\\vendor\\spatie\\pdf-to-image\\src\\Pdf.php:235)
[stacktrace]

"Det g�r inte att hitta filen" means "Couldn't find file"

I installed Imageick following this instruction: https://github.com/chunratha/Ratha-Project/blob/main/3-Install%20Imagick%20in%20Windows

Then I just downloaded Ghostscript, and finaly https://github.com/spatie/pdf-to-image

spitfire64 commented 1 month ago

Solved thanks to patinthehat. Rename gswin64.exe to gs.exe