Создание превью Pdf - файлов

  • Автор темы evgen
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

evgen

Здравствуйте!

Создаю превью для pdf - файлов. Нашел в интернете скрипт для конвертации:

PHP:
exec('convert "gazeta.pdf[0]" -colorspace RGB -geometry 200 "preview.png"');

Он работал 3 месяца, потом перестал.
Задал вопрос в службу технической поддержки хостинга о том установлены ли у них скрипты GhostScript и ImageMagick, на что они мне ответили: "GhostScript и ImageMagick установлены на нашей площадке как модули Perl."

Подскажите как все таки можно воспользоваться этими модулями для создания превьюшек для pdf-файлов?
 
E

evgen

Какой-то странный форум, все молчат, или вопрос до того умный?
 
1

1ive

установлены на нашей площадке как модули Perl

два варианта:
меняй хостера
переписывай скрипт на perl
 
V

vital

Для имаджика
PHP:
<?php
$obPdf = new Imagick( ‘act.pdf[0]‘ ); #Открываем наш PDF и указываем обработчику на первую страницу
$obPdf->setImageColorspace(255); #устанавливаем цветовую палитру
$obPdf->setCompression(Imagick::COMPRESSION_JPEG); #Устанавливаем компрессор
$obPdf->setCompressionQuality(60); #И уровень сжатия
$obPdf->setImageFormat(‘jpeg’); 
#При необходимости сделать превью ресайзим изображение
$obPdf->resizeImage(250, 250, imagick::FILTER_LANCZOS, 1);
#Ну и конечно же пишем в jpg-файл.
$obPdf->writeImage(‘act_preview.jpg’);
$obPdf->clear();
$obPdf->destroy();
?>
^это просто обертка для того же конверта. Лучше юзайте так.
Если не работает, то узнайте у хостера, у становлен(или возможо ли) установить расширение XPDF. А там..
PHP:
  1.
<?php
$realFileName = ‘/uploads/act.pdf’;
$fileName = ‘/path/to/preview/act’;
exec(‘pdftoppm ‘.$realFileName.‘ -png ‘.$fileName);#вызываем консольную утилиту
$fileName .= ‘-1.png’;#Добавляем постфикс к имени-пути файла
LL(‘File’)->createFileFromReal(‘file1′, $fileName);
unlink($fileName);?>
 
E

evgen

Для имаджика

<?php
$obPdf = new Imagick( ‘act.pdf[0]‘ ); #Открываем наш PDF и указываем обработчику на первую страницу
$obPdf->setImageColorspace(255); #устанавливаем цветовую палитру
$obPdf->setCompression(Imagick::COMPRESSION_JPEG); #Устанавливаем компрессор
$obPdf->setCompressionQuality(60); #И уровень сжатия
$obPdf->setImageFormat(‘jpeg’);
#При необходимости сделать превью ресайзим изображение
$obPdf->resizeImage(250, 250, imagick::FILTER_LANCZOS, 1);
#Ну и конечно же пишем в jpg-файл.
$obPdf->writeImage(‘act_preview.jpg’);
$obPdf->clear();
$obPdf->destroy();
?>
Да, они говорят, что ImageMagick у них установлен (Версия: ImageMagick-6.6.4.10), даже дали файл с тестом:
PHP:
<?php
$command = "/usr/local/bin/convert ./test.jpg -resize 30% 2.jpg";
exec($command);
?>
Но когда я пытаюсь что сделать таким образом как вы написали:
$obPdf = new Imagick( ‘act.pdf[0]‘ );
мне php пишет в ответ:
PHP:
Class 'imagick' not found in /htdocs/www/111/imagick.php on line 2
как раз на том месте где создается новый объект класса.

Также вопрос. каким образом можно переписать скрипт на perl. Опыта с perl никакого.

Заранее благодарю!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!