ImageMagick - конвертировать pdf в jpg

С помощью этого кода я пытаюсь преобразовать загруженный PDF в JPG.

$newname = date("U");

$target = "../uploads/";
$temp = "../temp/";

if($_FILES["fileToUpload"]["type"] == "application/pdf") {
print "pdf";
if(move_uploaded_file( $_FILES["fileToUpload"]["tmp_name"], $temp.$_FILES['fileToUpload']['name'])) {
    print "pdf saved<br>";
} else {
    print "pdf not saved<br>";
}
$filename = basename( $_FILES['fileToUpload']['name'], ".pdf");
print "<br>".$filename."<br>";
if(file_exists($temp.$_FILES['fileToUpload']['name'])) {
    print "temp-file exist<br>";
    $konv = "/usr/local/bin/convert -debug 'All' ".$temp.$_FILES['fileToUpload']['name']." ".$target.$newname.".jpg 2>&1";
    print $konv."<br>";
    exec("convert -debug 'All' ".$temp.$_FILES['fileToUpload']['name']." ".$target.$newname.".jpg 2>&1", $output); 
    if ($return == "0") { echo "<br>Image generation sucssesful<br>"; } 
    else { echo "<br>Image generation failed<br>"; } 
    print_r($output);
    foreach ( $output as $file ) 
    print "$file<br>";
} else {
    print "temp-file doesn't exist";
}


}

PDF сохраняется во временной папке, но преобразование изображения не выполняется, и единственное сообщение об ошибке, которое я получаю, — это 1.

Как получить дополнительные информационные сообщения об ошибках?


person Jeppe Donslund    schedule 17.11.2014    source источник


Ответы (1)


<?php
$image = new imagick('file.pdf[0]');
$image->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $image;
?>

Где [0] — номер страницы.

pdfinfo даст вам номера страниц..

exec('/path/to/pdfinfo '.$afilename.' | awk \'/Pages/ {print $2}\'', $output);
person Louis    schedule 17.11.2014
comment
Затем вы можете выполнить слияние с php.net/manual/en/function.imagecopymerge.php если вы не хотите листать изображения. - person Louis; 17.11.2014
comment
Спасибо за ваш ответ, но класс «imagick» не найден. Вот почему я использую Imagemagick напрямую - person Jeppe Donslund; 17.11.2014
comment
у вас должен быть установлен php5-imagick, чтобы вышеперечисленное работало. Есть несколько похожих вопросов: stackoverflow.com/questions/9227014/ - person Louis; 17.11.2014
comment
Я нахожусь на общем сервере, поэтому я не уверен, смогу ли я заставить их установить Imagisk. Было бы неплохо, если бы я мог получать больше сообщений об ошибках. Я думаю, что можно сделать конвертацию без Imagick. - person Jeppe Donslund; 17.11.2014