Ghostscript 如何处理没有颜色的矢量对象

Posted

技术标签:

【中文标题】Ghostscript 如何处理没有颜色的矢量对象【英文标题】:How does Ghostscript handle vector objects that have no color 【发布时间】:2016-12-20 23:05:29 【问题描述】:

我有 CMYK 矢量徽标 PDF 文件,需要在 Linux 上使用 Ghostscript 即时转换为 EPS 文件。它们在页面区域周围都有一个无色矢量轮廓,以标记大多数图形程序在打开文件或将其放置在页面文档上时所维护的安全区域(徽标周围必需的空白空间)。不幸的是,Ghostscript 似乎没有在 EPS 转换中转换这些轮廓,而是将它们丢弃。

有没有办法让这些轮廓(或任何无色矢量对象)转移到转换后的 EPS 文件中并仍然保持无色?也许使用 Ghostscript 以外的东西?

后续问题:有没有办法在转换中同时保持边界框和页面大小?

例如Adobe Illustrator 或其他图形程序在保存 EPS 文件时不会出现这些问题。

【问题讨论】:

【参考方案1】:

没有看到示例,就无法提供帮助。 PDF 中没有“无色”矢量轮廓之类的东西。您可以描述一条路径,但该路径必须被描边、填充或用作剪辑,如果它产生标记,则它不是“无色”的。 (其实这不太对,你可以用/Separation颜色,具体的墨名是/None,不过这样好像没什么意义)

MediaBox 在转换为 PostScript 程序时将转换为 /PageSize setpagedevice。请注意,EPS 程序不允许发出 PageSize 请求,所以不,您不能将 PDF 文件中的 MediaBox 保存到 EPS 程序中。

由于 BoundingBox 源自媒体上的标记,并且 PDF 文件没有 BoundingBox(PDF 文件的元素确实有 BoundingBox 条目,但 PDF 文件或单个页面没有)。所以不,你不能保留一开始就不存在的东西。

BoundingBox 定义为包围媒体上所有标记的最小区域。如果您希望 BoundingBox 比这更大(您所谓的“安全区”,那么当您将 EPS 放入文档时,您需要在 EPS 周围留出空间。坦率地说,其他任何事情都是错误的。

“听起来”您期望 PDF 文件中的一些空白区域将转换为 EPS 中的空白区域(没有“无色矢量轮廓”,它只是未标记的区域)。来自 EPS 规范:

对于 EPS 文件,边界框是最小的矩形 包含在 EPS 文件单页上绘制的所有标记。

如果您在某处发布(简单)示例文件,那么我可以查看它,但您似乎已经回答了自己的问题:

“有没有办法让这些轮廓(或任何无色矢量对象)转移到转换后的 EPS 文件中并仍然保持无色?也许使用除 Ghostscript 之外的其他东西?” ... ... “例如 Adob​​e Illustrator 或其他图形程序在保存 EPS 文件时不会出现这些问题。”

所以,是的,您可以使用这些其他程序之一。

【讨论】:

以上是关于Ghostscript 如何处理没有颜色的矢量对象的主要内容,如果未能解决你的问题,请参考以下文章

如何处理没有其他关系的实体中的嵌套对象

将列表转换为DataFrame时如何处理错误“'NoneType'对象没有属性'keys'”

如何处理大维度表

C语言如何处理RGB信号

iOS 14 后列表背景颜色更改并添加了填充,我该如何处理?

如何处理大型嵌套对象的缓存