Я установил простой скрипт для извлечения обложек в формате PDF, их сохранения и отображения рядом с названием книги. Книг довольно много, например сотня, и скрипт в определенный момент переходит в alt с сообщением об ошибке:
Fatal error: Uncaught ImagickException: Postscript delegate failed `[ghostscript library 9.25] -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r72x72' -dFirstPage=1 -dLastPage=1 '-sOutputFile=/tmp/magick-27554Ici68mMMGVSY%d' '-f/tmp/magick-27554GJYgTikvACHZ' '-f/tmp/magick-27554BNiFmZKXjmw0'': **** Error reading a content stream.
The page may be incomplete. Output may be incorrect. Error: /typecheck in --runpdf-- Operand stack: --dict:4/13(L)-- --dict:5/14(L)-- --dict:5/14(L)-- 61 15898520 61 0 --nostringval-- Contents --dict:9/9(L)-- false --nostringval-- --nostringval-- --nostringval--
Execution stack: %interp_exit .runexec2 --nostringval-- runpdf --nostringval-- 2 %stopped_push --nostringval-- runpdf runpdf false 1 %stopped_push 2047 1 3 %oparray_pop 2046 1 3 %oparray_pop 2026 1 3 %oparray_pop in /var/www/website/public_html/list.php on line 28
Вот код, печатающий книги и обложки, который вроде бы работает:
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$book = $row["bookname"];
$path = $host."/libreria/".$row["bookname"];
$truepath = basename($path);
$coverName = $truepath."-cover.png";
$fileArr = explode('.', $book);
$fileExt = strtolower(end($fileArr));
if ($fileExt == "pdf") {
$im = new imagick($book.'[0]');
$im->setImageFormat('png');
$im->resizeImage(150,200,1,0);
$im->writeImage('/var/www/test1.putmywebsite.online/public_html/libreria/covers/'.$coverName);
echo "<a href='$truepath'>"."<img src='covers/".$coverName."'>".$row["bookname"]."</a><br>";
} else {
echo "<a href='$truepath'>".$row["bookname"]."</a><br>";
$bookArray[] = $row["bookname"];
}
Время выполнения механизма PHP составляет 300 с, похоже, не проблема тайм-аута. Сообщение об ошибке для меня совершенно крипти c; файл, в котором я получил фатальное исключение, работает, попробовал мою локальную версию скрипта, и даже удалив его, я снова получаю ту же ошибку. Любое предложение? Заранее благодарим за любой ответ или комментарий :)