'Image' 在 PostScript 中有一个定义的含义,它表示位图、光栅。我认为,从上下文来看,你的意思是更笼统的。
简单的答案是否定的,一般来说你不能这样做,而且我不知道有什么工具可以做到。
原因是这样做会丢失信息;在 Separation 或 DeviceN 空间中定义的标记将完全丢失,并且通常认为丢弃文档的随机部分是一个坏主意。
也许你可以解释你想用这个来实现什么(即你为什么要这样做),并且可能会建议一种替代方法。
如果您是一位称职的 C 程序员,您可以使用现有的 FILTER 设备(在 gdevflt.c 中)作为模板来生成 Ghostscript 子类设备。该设备查看操作类型,然后将其传递给输出设备,或者将其丢弃。查看当前颜色空间并丢弃 Separation 或 DeviceN 空间会相当简单。如果您随后使用 pdfwrite/ps2write/eps2write 输出设备,您将获得 EPS、PostScript 程序或 PDF 文件作为输出。
无论您是走这条路,继续现有的,还是寻找替代方法,您都需要考虑几件事情;您打算如何处理带有原色名称的分离油墨?例如/分离/黑色。一些油墨是印刷色的 DeviceN 空间呢?例如双色调黑色和 Pantone 墨水。这些应该保留还是丢弃?
您当前的方法将使用标记印版的对象部分,而不是标记专色的部分,这可能会产生一些非常奇怪的结果。
[编辑]
PDF、PostScript 和 EPS 没有“图层”(PDF 有一个功能,可选内容,它在规范中使用术语“图层”作为描述,仅此而已)。
诸如 Photoshop 和 Illustrator 之类的应用程序可以具有图层,但通常它们导出的内容必须将这些“图层”转换为其他内容。 “其他”取决于您将其保存为什么。
部分问题在于您显然正在尝试处理 3 种不同类型的输入,例如 Illustrator(PDF,或多或少)、Photoshop(光栅图像)和 EPS(PostScript)。三者之间几乎没有共同点,有理由支持所有这些吗?
如果您满足于仅使用 Illustrator,则可以使用可选内容做一些事情。我对 Illustrator 的现代版本不是很熟悉,但是保存两个版本的文件不是更简单吗,一个有答案层,一个没有答案层?
无论如何,Ghostscript 可以支持可选内容,因此如果您可以从 Illustrator 保存 PDF 文件(不是 PostScript 或 EPS),则图层可能会作为可选内容保留在 PDF 中。我怀疑他们会通过快速谷歌搜索。在这种情况下,您可以通过 Ghostscript 运行该文件,告诉它不要尊重可选内容部分,并获得一个不存在的 PDF 文件。
另一种解决方案(同样仅限于 PDF)是使用 Acrobat Pro 等编辑应用程序打开 PDF 文件,然后简单地删除不需要的位。那种删除比较靠谱。
虽然删除了一些内容,但获取 PDF 文件仍然感觉是一种相当冗长的方法。我不禁觉得从创建应用程序中保存两个版本会更容易。