想象PDF到JPG缺少图层。需要将文件从PDF 1.6转换为1.4

时间:2014-10-28 00:31:29

标签: php pdf jpeg imagick

我正在将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创建文件,缺少的图层是InDesign项目中包含多个图层的PSD文件。

//编辑:

所以我发现问题在于文件本身。以1.5版或更高版本存储的文件的编码/存储与旧版本不同。如果我将相同的文件保存到版本PDF 1.4一切正常。所以这不是尺寸问题,而是版本问题。

我认为,最好的解决方案是在服务器上转换文件。任何人都可以推荐一些图书馆或解决方案吗?可以付钱。

0 个答案:

没有答案