MediaPdfThumbnailImagickManager.php in Media PDF Thumbnail 8.4
File
src/Manager/MediaPdfThumbnailImagickManager.php
View source
<?php
namespace Drupal\media_pdf_thumbnail\Manager;
use Drupal\Core\File\FileSystemInterface;
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Spatie\PdfToImage\Pdf;
class MediaPdfThumbnailImagickManager {
protected $logger;
protected $fileSystem;
public function __construct(LoggerChannelFactoryInterface $loggerChannel, FileSystemInterface $fileSystem) {
$this->logger = $loggerChannel
->get('Media PDF Thumbnail');
$this->fileSystem = $fileSystem;
}
public function generateImageFromPDF($source, $target) {
$directory = dirname($target);
$this->fileSystem
->prepareDirectory($directory, [
FileSystemInterface::CREATE_DIRECTORY,
FileSystemInterface::MODIFY_PERMISSIONS,
]);
try {
$pdf = new Pdf($this->fileSystem
->realpath($source));
$pdf
->setPage(1);
return $pdf
->saveImage($target) ? $target : NULL;
} catch (\Exception $e) {
$this->logger
->error($e
->getMessage());
return NULL;
}
}
}