You are here

class MediaPdfThumbnailImagickManager in Media PDF Thumbnail 8.4

Same name and namespace in other branches
  1. 8 src/Manager/MediaPdfThumbnailImagickManager.php \Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailImagickManager
  2. 8.2 src/Manager/MediaPdfThumbnailImagickManager.php \Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailImagickManager
  3. 8.3 src/Manager/MediaPdfThumbnailImagickManager.php \Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailImagickManager

Class MediaPdfThumbnailImagickManager.

@package Drupal\media_pdf_thumbnail\Manager

Hierarchy

Expanded class hierarchy of MediaPdfThumbnailImagickManager

1 string reference to 'MediaPdfThumbnailImagickManager'
media_pdf_thumbnail.services.yml in ./media_pdf_thumbnail.services.yml
media_pdf_thumbnail.services.yml
1 service uses MediaPdfThumbnailImagickManager
media_pdf_thumbnail.imagick.manager in ./media_pdf_thumbnail.services.yml
Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailImagickManager

File

src/Manager/MediaPdfThumbnailImagickManager.php, line 14

Namespace

Drupal\media_pdf_thumbnail\Manager
View source
class MediaPdfThumbnailImagickManager {

  /**
   * @var \Drupal\Core\Logger\LoggerChannelFactoryInterface
   */
  protected $logger;

  /**
   * @var \Drupal\Core\File\FileSystemInterface
   */
  protected $fileSystem;

  /**
   * MediaPdfThumbnailImagickManager constructor.
   *
   * @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $loggerChannel
   * @param \Drupal\Core\File\FileSystemInterface $fileSystem
   */
  public function __construct(LoggerChannelFactoryInterface $loggerChannel, FileSystemInterface $fileSystem) {
    $this->logger = $loggerChannel
      ->get('Media PDF Thumbnail');
    $this->fileSystem = $fileSystem;
  }

  /**
   * @param $source
   * @param $target
   *
   * @return mixed|null
   */
  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;
    }
  }

}

Members