Создаем превью PDF файла в PHP.

Создаем превью PDF файла в PHP.

Создаем превью PDF файла в PHP.

Доброго времени суток! В данной статье я покажу Вам, как можно создать превью (изображения первой страницы) из PDF файла на PHP.

Где это может пригодиться? Допустим, Вы создаете онлайн-библиотеку, в которой
при добавлении новой книги (в нашем случае в формате PDF) из нее генерируется
изображение первой страницы — превью.

Итак, для создания превью из PDF файла будем использовать библиотеки Imagick и Gostscript.

Код программы:



<?php



// путь к файлам с превью

function coverImagePath(string $pdfFileName)

{

    $poster = pathinfo($pdfFileName, PATHINFO_FILENAME);

    return __DIR__ . "/covers/$poster.jpg";

}





// здесь создаем превью

// параметр файла - пусть к PDF-файлу

function createPoster(string $pdfFile)

{

    $firstPage = '[0]'; // первая страница

    $im = new Imagick($pdfFile . $firstPage); // читаем первую страницу из файла

    $im->setImageFormat('jpg'); // устанавливаем формат jpg

    file_put_contents(coverImagePath($pdfFile), $im); // сохраняем файл в папку

    $im->clear(); // очищаем используемые ресурсы

}





// получаем все файлы в папке

const RootDir = '/home/myrusakov/Documents';

$files = new DirectoryIterator(RootDir);



// проходимся по ним

foreach($files as $file) 

{

    // если файл - . или .. - пропускаем

    if($file->isDot()) 

        continue;



    // получаем полный путь к файлу

    $filePath = RootDir . DIRECTORY_SEPARATOR . $file->getFilename();



    if($file->isFile() && $file->getExtension() === 'pdf') 

    {

        $posterFile = new SplFileInfo(coverImagePath($filePath));

        if($posterFile->isFile()) continue;



        createPoster($filePath);

        print($filePath . PHP_EOL);

    }

}





Таким образом,после запуска программы мы получим превью — изображение первой страницы каждого файла.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий