Все разделы | CMS Joomla 2.5 | Общее | PHP | Javascript + jQuery
17 октября 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= написать название иного файла.