难以尝试创建一个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上使用文档查看器,我相信它被用作解释器。
答案 0 :(得分:1)
如果字符串(和其他复合)对象是同一个对象,则它们是相同的 ,而不是它们的内容相同。在C语言中,只有当它们是相同的指针时它们才是等价的。
所以:
/x (string) def
/y x def
/Z (string) def
y等于x,z不等于x或y。如果你想测试字符串的内容是否相同,那么你需要使用get运算符分别检查每个位置的字符,没有strcmp或类似的运算符。
复合对象的行为是PostScript中一个重要且经常被忽视的点。
答案 1 :(得分:0)
这是ubuntu的文档查看器 - 它非常敏感。如果遇到这个问题,请尝试使用ghostscript。