EPS内部的EPS作为链接 - “运行”命令的任何替代方案?

时间:2016-02-05 14:12:53

标签: postscript eps

也许这是一个愚蠢的问题,但我没有PostScript / EPS的经验,我需要(尝试)解决我遇到的问题(过去的功能......所以我被告知)。全部都在Windows 7 x64下。

要求要求将EPS文件链接到另一个EPS文件中。它的使用方式是使用“run”命令以及“translate”和“scale”以使child.eps适合parent.eps。 (这是由Java类完成的)

考虑以下(简化)示例:

%!PS-Adobe-3.0 EPSF-3.0
%!PS-Adobe EPSF-3.0
%%BoundingBox: 0 0 800 200

/Courier findfont 70 scalefont setfont
10 10 moveto
(Hello World!) show
%%EOF

以上工作正常,但如果在 %% EOF 之前,我添加

  

(child.eps)运行

我得到了非常奇怪的行为(在3台Windows PC上尝试了这一点,结果完全相同):

  • Adob​​e Illustrator CS5(v15)工作正常(ish)...如果Illustrator 未打开并且双击该文件,它总是有效。但是如果我先打开Illustrator然后使用它的文件 - >打开对话框 打开EPS文件,失败并显示“未知错误”
  • Adob​​e Illustrator CS6无法以“未知错误”(始终)
  • 打开文件
  • GSView(使用Ghostscript 9.07和-dNOSAFER选项)正确打开它。

我错过了什么?或者我做错了什么?

除了使用“run”命令之外,还有其他方法可以将EPS链接到另一个EPS中,这样我可以获得一致的结果吗?

谢谢!

LE:两者,Parent.eps和Child.eps都在同一个文件夹中

1 个答案:

答案 0 :(得分:1)

PostScript语言没有任何“链接”概念。当你认为PostScript是一种编程语言时就不足为奇了。

令人惊讶的是,执行'运行'在EPS文件中,它不会使其成为无效的EPS。

这对我来说是令人惊讶的,因为您假设要做的是包含父级内的辅助EPS文件。 EPS文件的全部意义在于它的“黑盒子”,要使其能够运行封装的PostScript程序,只需要设置CTM以将EPS扩展到它想要的空间,然后执行EPS。 EPS不应有任何副作用。

无论如何,PostScript中没有任何其他功能可以满足您的需求。我强烈怀疑任何一个Illustrator都没有提供PostScript解释器,或出于安全原因以某种方式限制它。如果PostScript有效,Illustrator不是一种可靠的测试方法!

为什么要将其加载到Illustrator中?您是否考虑使用PDF而不是EPS?