6

我正在寻找有助于以编程方式操作 EPS(封装 PostScript)文件的库。基本上,我想做的是:

  • 在 EPS 文件中显示/隐藏预先存在的图层(打开和关闭它们)
  • 在 EPS 文件中填充(颜色)命名形状
  • 检索 EPS 文件中命名点的坐标
  • 在 EPS 文件的新图层上绘制形状
  • 在服务器上,没有用户交互(脚本 Adob​​e Illustrator 不起作用)

我知道 EPS 文件格式是如何基于 PostScript 语言的,因此必须对其进行解释 - 对于从头开始创建简单的绘图来说,这相当容易。但是对于实际修改现有文件,我想您需要一个解释文件并提供某种“DOM”进行操作的库。

我什至可以在 EPS 文件中命名形状和点吗?

编辑:假设我将图层保存在单独的 EPS 文件中。或者更好的是:只是图层的“数据”部分。然后我可以连接这些东西来创建一个新的 EPS 文件吗?并附加绘图命令?填充现有的命名对象?

4

4 回答 4

7

这是非常困难的,原因如下:PS 文件是一个程序,其执行会导致页面上的像素。PS 程序中的指令处于“使用当前笔和颜色画线”或“将坐标系旋转 90 度”的级别,但没有图层或复杂对象的概念,就像您在矢量图中看到的那样应用。

PS 文件的结构中很少有约定允许外部程序修改它们:页面单独标记,字体资源和媒体尺寸在特殊注释中拼写出来。对于必须遵循这些准则的嵌入式 Postscript (EPS) 尤其如此,因为它们旨在由应用程序读取,但不适用于一般 PS,因为它被发送到打印机。PS 程序的抽象级别比您需要的要低得多,现在可以为任意 PS 代码重构它。原则上,PS 文件每次打印时都会产生不同的输出,因为它可能会根据随机决策查询其执行环境和分支。

Applications like Adobe Illustrator emit PS code that follow a rigid structure. There is a chance that these could be parsed and manipulated without interpreting the code. I would stil suggest to rethink the current architecture: you are at a too low level of abstraction for what you need.

于 2009-01-18T12:34:29.103 回答
3

PDF 不可操作,因为无法更改 pdf 的任何现有部分(通常)只能添加内容。EPS 与 PostScript 相同,只是它有一个边界标题。

做你想做的事情的问题是 PS 是一种编程语言,其输出(大部分)是某种图像。所以问题可以表述为“如何在 Java 文件的新层上绘制形状”。您可能需要即时生成完整的 PS,或者完全使用其他图像格式。

于 2009-01-09T13:23:38.967 回答
1

我不知道有任何可用的库,但您可以基于Ghostscript/ GSview中的 epstool 构建一些东西来满足您的需求

于 2009-01-09T12:53:34.940 回答
1

我认为您最好的选择是从 EPS 生成 PDF,然后操作 PDF。然后回到EPS。PDF 比 EPS 更“可操作”。

于 2009-01-09T13:06:34.493 回答