4

我正在使用以下命令:

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

在一个 3MB 的测试文件上,它会创建一个质量很差的 20MB PDF。

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

4

1 回答 1

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 使用的颜色配置文件): 为工作使用正确的工具。 直接学习使用 Ghostscript(因为 Ghostscript 可以将 ICC 颜色配置文件嵌入到 PDF 中,而无需先将页面更改为光栅图像。您不需要 ImageMagick!)

于 2012-09-20T22:02:43.970 回答