我正在将PDF
个文件转换为jpg
。 PDF非常复杂,包含大量图像。当我转换pdf时,某些图层分别缺少部分页面。例如:
以下是桌面PDF阅读器应用程序的截图
以下是转换结果的相同部分:
正如你所看到的,背景和灰色领域的东西都缺失了。
我已尝试合并图层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一切正常。所以这不是尺寸问题,而是版本问题。
我认为,最好的解决方案是在服务器上转换文件。任何人都可以推荐一些图书馆或解决方案吗?可以付钱。