Я использую ImageMagik, чтобы попытаться преобразовать содержимое PDF в JPG, но продолжаю получать пустой jpg. Я убедился, что perms – это 777 на все для тестирования, поэтому я немного потерял, как продолжить.
Вот сценарий, который я запускаю
<?php exec('convert testfile.pdf output.jpg', $output, $return_var); ?>
Попробуй это.
<?php $pdf = 'testfile.pdf'; $save = 'output.jpg'; exec('convert "'.$pdf.'" -colorspace RGB -resize 800 "'.$save.'"', $output, $return_var); ?>
Используйте абсолютный путь к двоичному, например:
exec('/usr/bin/convert testfile.pdf output.jpg', $output, $return_var);
Но убедитесь, что ваш convert
двоичный файл находится на /usr/bin
вы можете проверить это с помощью следующей команды:
which convert
convert -normalize yourfile.pdf[0] yourdestination.jpg
ImageMagick внутренне использует GhostScript и, как правило, преобразование ImageMagick медленнее Сравнение с Ghoastscript, поэтому, если вам интересно только преобразовать PDF в изображения, то команда Ghostscript gs
выполняется быстрее. ниже – примерная обложка вокруг Ghostscript, которую я написал несколько дней назад.
PDFLib-Php
$pdflib = new ImalH\PDFLib\PDFLib(); $pdflib->setPdfPath($pdf_file_path); $pdflib->setOutputPath($folder_path_for_images); $pdflib->setImageQuality(95); $pdflib->setDPI(300); $pdflib->setPageRange(1,$pdflib->getNumberOfPages()); $pdflib->convert();
Здесь у меня есть мое решение. Используйте Imagick прямо в вашем php-коде.
Преобразование всех страниц PDF в JPG
// create Imagick object $imagick = new Imagick(); // Reads image from PDF $imagick->readImage('file.pdf'); // Writes an image $imagick->writeImages('converted.jpg', false);
Преобразование конкретной страницы PDF в JPG
// create Imagick object $imagick = new Imagick(); // Read image from PDF $imagick->readImage('test.pdf[0]'); // Writes an image $imagick->writeImages('converted_page_one.jpg');
Другой способ справиться с этой проблемой – использовать библиотеку пространственных / pdf-изображений .
Ура!