Блог разработчиков

Все разделы | CMS Joomla 2.5 | Общее | PHP | Javascript + jQuery

Превью (миниатюра) pdf файла

18 октября 2014

Скрипт представленный в статье не производит сохранение превью изображение на сервере, а генерирует его средствами php на странице в момент загрузки. Предположим что в корне сайта находится pdf файл, для которого необходимо вывести превью на странице. Для начала необходимо создать в папке с данным файлом обработчик, для вывода картинки, например, preview_pdf.php, имеющий следующее содержание

<?php
$im = new imagick('document.pdf');
$im->setImageFormat('jpg');
$im->thumbnailImage(220, 0);
header('Content-Type: image/jpeg');
echo $im;
?>

document.pdf - это pdf файл на, превью которого необходимо получить. После запуска этого скрипта будет показана картинка размером в 220px в ширину, и auto в высоту, об этом говорит строка

$im->thumbnailImage(220, 0);

изображение в формате jpg, это видно из

$im->setImageFormat('jpg');

Можно изменить этот формат на иной, например, png, gif, но в этом нет смысла, т.к. наврядли найдутся pdf файлы с прозрачностью, поэтому лучший вариант это jpg. Но если вдруг появится необходимость в этом острая, поменять расширение нужно будет не только в этой строке но и в заголовке header, отвечающий за вывод содержимого.

Скрипт готов, и по заголовку для он является картинкой, т.е. ссылка на файл обработчик это есть аттрибут src тега img на странице

<img src="preview_pdf.php" alt="" />

Осталось добавить запросы, обеспечивающие отображение заданных превью pdf файлов. Для этого используется один из методов передачи данных, например, POST или GET. Рассмотрим самый популярный, GET. Для начала в файле preview_pdf.php нужно сделать замену

<?php
$im = new imagick($_GET['pdf']);
$im->setImageFormat('jpg');
$im->thumbnailImage(220, 0);
header('Content-Type: image/jpeg');
echo $im;
?>

Из скрипта видно что он будет принимать данные из запроса и обрабатывать их, а именно глобальную переменную $_GET['pdf']. Для вывода на странице

<img src="preview_pdf.php?pdf=document.pdf" alt="" />

Все. Теперь скрипт получает документ с помощью GET, для изменения файла pdf нужно после pdf= написать название иного файла.