From d289f815f66bdf9068d4624cabf5030e71784b22 Mon Sep 17 00:00:00 2001 From: Julius Kiekbusch Date: Wed, 12 Jun 2024 10:16:30 +0200 Subject: [PATCH] [11.x] Support spatie/pdf-to-image v3 (#3633) * Support spatie/pdf-to-image v3 * Check for v3 * Fix workflow * Revert workflow --- composer.json | 2 +- src/Conversions/ImageGenerators/Pdf.php | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index e0aeeef1e..7e9f6bf02 100644 --- a/composer.json +++ b/composer.json @@ -51,7 +51,7 @@ "pestphp/pest": "^2.28", "phpstan/extension-installer": "^1.3.1", "spatie/laravel-ray": "^1.33", - "spatie/pdf-to-image": "^2.2", + "spatie/pdf-to-image": "^2.2|^3.0", "spatie/pest-plugin-snapshots": "^2.1" }, "conflict": { diff --git a/src/Conversions/ImageGenerators/Pdf.php b/src/Conversions/ImageGenerators/Pdf.php index 9d745ebbc..6206243cc 100644 --- a/src/Conversions/ImageGenerators/Pdf.php +++ b/src/Conversions/ImageGenerators/Pdf.php @@ -2,6 +2,8 @@ namespace Spatie\MediaLibrary\Conversions\ImageGenerators; +use Composer\InstalledVersions; +use Composer\Semver\VersionParser; use Illuminate\Support\Collection; use Imagick; use Spatie\MediaLibrary\Conversions\Conversion; @@ -14,11 +16,20 @@ public function convert(string $file, ?Conversion $conversion = null): string $pageNumber = $conversion ? $conversion->getPdfPageNumber() : 1; - (new \Spatie\PdfToImage\Pdf($file))->setPage($pageNumber)->saveImage($imageFile); + if ($this->usesPdfToImageV3()) { + (new \Spatie\PdfToImage\Pdf($file))->selectPage($pageNumber)->save($imageFile); + } else { + (new \Spatie\PdfToImage\Pdf($file))->setPage($pageNumber)->saveImage($imageFile); + } return $imageFile; } + private function usesPdfToImageV3(): bool + { + return InstalledVersions::satisfies(new VersionParser, 'spatie/pdf-to-image', '^3.0'); + } + public function requirementsAreInstalled(): bool { if (! class_exists(Imagick::class)) {