我需要打印一个字符串直到一定的宽度,例如:
(abcd efgh) 显示 我只需要打印字符串的 36 个点,在本例中我只想打印 abcd 和半个 e。 我怎样才能做到这一点? 或者至少只打印到 e 或 e 之前?
最佳答案
如果您想要部分“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 )
关于后记:如何在显示之前将字符串切割一定宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30237639/