Imagick PDF в JPG недостающие слои. Нужно конвертировать файлы из PDF 1.6 в 1.4

Я конвертирую PDF файлы в jpg, PDF-файлы довольно сложны и состоят из множества изображений. Когда я конвертирую PDF, некоторые слои или части страниц отсутствуют. Например:

Вот скриншот из настольного приложения для чтения PDF

http://mariusrak.sk/original.png

И вот та же часть результата конвертации:

http://mariusrak.sk/result.png

Как видите, фон и эта вещь в сером поле отсутствуют.

Я пытался объединить слои и flattenimages, также ($i = $i->flattenimages()) и результат остается тем же, некоторые части изображений / слоев отсутствуют.

//Редактировать:
Итак, вот код:

ini_set('max_execution_time', 600);

$f = './f_big.pdf';
$I = new Imagick;
$I->setresolution(144, 144);

$p = 0;
while(true){
try {
$I->readimage($f.'[' . $p . ']');
$attrs = $I->identifyimage();
$dpi = 1600 / ($attrs['geometry']['height'] / $attrs['resolution']['y']);
$I->setresolution($dpi, $dpi);
$I->readimage($f.'[' . $p . ']');
} catch (Exception $E) {
break;
}
$I->writeimage('./big-'.$p.'.jpg');
$I->clear();
++$p;
}

Проблема возникает с большими файлами, например 8Mb и 46 страниц. Но когда я использую те же файлы, но только с первыми двумя страницами, все работает просто отлично.

Файлы создаются с помощью InDesign, а отсутствующие слои являются PSD-файлами внутри проекта InDesign со многими слоями.

// Редактировать:

Итак, я обнаружил, что проблема с самими файлами. Файлы, которые хранятся в PDF версии 1.5 или выше, кодируются / хранятся не так, как в старой версии. Если я сохраню тот же файл в версии PDF 1.4, все будет работать нормально. Так что дело не в размерах, а в версии.

Я думаю, что лучшим решением будет конвертировать файл на сервере. Кто-нибудь может порекомендовать какую-нибудь библиотеку или решение для этого? Может быть оплачено.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]