后记:如何在显示前将字符串切割成一定宽度?

postscript: how to cut a string a certain width before show?

我需要打印一个字符串直到一定宽度,例如:

(abcd efgh) 显示 我只需要打印字符串的 36 点,在这种情况下我只想打印 abcd 和半个 e。 我怎样才能做到这一点? 或者至少只打印到 e 或 e 之前?

设置剪辑。 clip 和 rectclip 就可以了 工作。请记住 gsave 和 grestore,否则剪辑将保留。

如果您想要局部 'e',请采纳 Ken 的建议并使用剪辑。

要完全排除 'e',您可以使用 stringwidth。此循环将字符串的长度减 1,直到小于指定的最大值。

/Times-Roman 14 selectfont

(abcd efgh) 36 {
    1 index stringwidth pop % s max len 
    2 copy ge {
        pop pop exit
    }{  
        pop  % s max 
        exch % max s
        0 1 index length 1 sub getinterval % max s[0:n-2]
        exch % s' max
    } ifelse
} loop

==

输出:

(abcd )