我需要打印一个字符串直到某个宽度,例如:
(abcd efgh)节目 我只需打印36个字符串,在这种情况下我只想打印abcd和半个e。 我怎样才能做到这一点? 或者至少只打印到e或之前?
答案 0 :(得分:3)
如果你想要部分'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 )
答案 1 :(得分:2)
设置剪辑。剪辑和rectclip会做 工作。请记住gsave和grestore,否则剪辑将持续存在。