<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 3.0

PHP и MySQL с Нуля до Гуру 3.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 9 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

В курсе Вы узнаете всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

В Бонусе «Создание сайта для библиотеки» Вы увидите применение знаний из основного курса при создании полноценного проекта.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Создаем превью 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);
    }
}


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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.