Postscript语法难度

时间:2015-09-16 22:14:24

标签: postscript

难以尝试创建一个postscript文件,该文件将根据开头的字符串以不同的方式输出。我能够执行以下操作并创建有效的postscript文件:

/x (string) def

  /Times-Roman findfont
  12 scalefont
  setfont
  newpath
  100 200 moveto
  (sdbc) show

然后,我尝试在它周围包装一个if语句......

/x (string) def

x (string) eq {
  /Times-Roman findfont
  12 scalefont
  setfont
  newpath
  100 200 moveto
  (sdbc) show } if

这会创建一个无效的postscript文件。有关postscript语法的任何提示,以实现这种事情将不胜感激!

我在ubuntu上使用文档查看器,我相信它被用作解释器。

2 个答案:

答案 0 :(得分:1)

如果字符串(和其他复合)对象是同一个对象,则它们是相同的 ,而不是它们的内容相同。在C语言中,只有当它们是相同的指针时它们才是等价的。

所以:

/x (string) def
/y x def
/Z (string) def

y等于x,z不等于x或y。如果你想测试字符串的内容是否相同,那么你需要使用get运算符分别检查每个位置的字符,没有strcmp或类似的运算符。

复合对象的行为是PostScript中一个重要且经常被忽视的点。

答案 1 :(得分:0)

这是ubuntu的文档查看器 - 它非常敏感。如果遇到这个问题,请尝试使用ghostscript。

相关问题