在尝试创建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上使用的是Document Viewer,我相信它被用作解释器。
发布于 2015-09-17 19:51:48
只有当字符串(和其他复合)对象是相同的对象时,它们才是相同的,如果它们的内容相同,则不是。在C语言中,只有当它们是相同的指针时,它们才是等价的。
所以:
/x (string) def
/y x def
/Z (string) defy等于x,z不等于x或y。如果您想测试字符串的内容是否相同,则需要使用get运算符分别检查每个位置的字符,没有strcmp或类似运算符。
在PostScript中,复合对象的行为是一个重要且经常被忽视的点。
发布于 2015-09-25 14:34:49
它是ubuntu的文档查看器--它非常敏感。如果遇到此问题,请尝试使用ghostscript。
https://stackoverflow.com/questions/32619674
复制相似问题