У меня есть следующая функция php ниже, которая преобразует локальный файл PDF в изображения. Короче говоря, я хочу, чтобы каждая страница PDF была преобразована в отдельный образ.Сохранение каждой страницы PDF в изображение с помощью Imagick
Функция преобразует PDF в изображение, но только на последнюю страницу. Я хочу каждые страница PDF, которая будет преобразована в изображение и пронумерована. Не только последняя страница PDF.
В настоящее время эта функция преобразует последнюю страницу example.pdf
в example-0.jpg
. Проблема, я уверен, лежит в методе for
. Что мне не хватает?
$file_name = 'example.pdf'; // using just for this example, I pull $file_name from another function
function _create_preview_images($file_name) {
// Strip document extension
$file_name = basename($file_name, '.pdf');
// Convert this document
// Each page to single image
$img = new imagick('uploads/'.$file_name.'.pdf');
// Set background color and flatten
// Prevents black background on objects with transparency
$img->setImageBackgroundColor('white');
$img = $img->flattenImages();
// Set image resolution
// Determine num of pages
$img->setResolution(300,300);
$num_pages = $img->getNumberImages();
// Compress Image Quality
$img->setImageCompressionQuality(100);
// Convert PDF pages to images
for($i = 0;$i < $num_pages; $i++) {
// Set iterator postion
$img->setIteratorIndex($i);
// Set image format
$img->setImageFormat('jpeg');
// Write Images to temp 'upload' folder
$img->writeImage('uploads/'.$file_name.'-'.$i.'.jpg');
}
$img->destroy();
}
Я не знаю, если что-то изменилось, но в последний раз я генерировал Pdf миниатюру это на '$ IMG = новый Imagick («file.pdf [0]») ; 'получить только первую страницу. –
Да ... Я знаю об этом. Но мне не нужна первая, средняя или последняя страница - я хочу, чтобы ВСЕ страницы были преобразованы в отдельные изображения. –
Я знаю, что я пытаюсь сказать, что PDF не работает хорошо, как другие многоформатные форматы, поэтому, вероятно, вам нужно получить количество страниц и в цикле создать новые экземпляры imagick, добавив '[$ i]' для имени файла. –