ImageMagick:转换PDF颜色配置文件会创建巨型PDF吗?

时间:2012-09-20 21:38:23

标签: imagemagick imagemagick-convert

我使用以下命令:

convert sourcefile.pdf -profile "cmyk.icc" -profile "srgb.icc" +profile "*" output.pdf

在一个3MB的测试文件中,它会创建一个质量非常糟糕的20MB PDF。

如果我添加-density 600参数,该文件将爆炸超过600mb。有没有办法转换色彩空间,同时保持其他一切?这是一个临时PDF供进一步处理,所以我不需要它完全相同的大小,但我不能处理巨大的PDF文件大小。

1 个答案:

答案 0 :(得分:1)

您的问题不在于使用convert和ImageMagick的颜色配置文件。

我保证你对这些命令也有同样的问题:

convert  sourcefile.pdf  output.pdf 

convert  -density 600  sourcefile.pdf  output.pdf 

你真正的问题是将ImageMagick用于不擅长的任务。因为ImageMagick无法处理PDF。它只能处理光栅图像。这是它擅长的地方,也是真正擅长的地方。

由于PDF不是光栅图像(尽管它们可以包含这些图像),因此ImageMagick使用委托将PDF页面转换为单页整页图像。这个代表是Ghostscript。

只有在收到代表的结果(光栅图像)后,ImageMagick才会在您的个人资料更改中开始工作。一旦完成,它将图像转换回PDF - 但现在PDF已经丢失了所有以前的矢量对象,并且每个页面只剩下一个像素化版本。

就像你通过绞肉机研磨后不能将肉放回一块 - 一旦你将原来的PDF对象(矢量图,字体等)拿回来,你就无法取回它像ImageMagick那样栅格化了它的页面......


您的问题的解决方案(弄乱PDF使用的颜色配置文件): 使用正确的工具进行工作。 学习use Ghostscript directly(因为Ghostscript可以将ICC颜色配置文件嵌入到PDF中,而无需先将页面更改为光栅图像。您不需要ImageMagick!)