文字列のセンタリング
Posted feedbacks - PostScript
PostScript で。 PostScript で文字数単位でやる実用性はほとんど無いでしょうね。 通常はフォント指定して文字列幅を計算、幅にあわせて切り捨てるなり圧縮するなり、でしょうから。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | %!PS
/FillSpace { % (String) FillSpace (String')
dup length 1 sub 0 1 3 -1 roll {
1 index exch 32 put
} for
} bind def
/Centering { % (String) length Centering (NewString)
dup string FillSpace dup
3 index length 4 -1 roll
2 copy le {
sub neg 2 idiv 4 -1 roll putinterval
} {
2 copy sub 2 idiv
exch 6 -1 roll 3 1 roll getinterval
exch pop 0 exch putinterval
} ifelse
} bind def
% -------------------- Test Code ------------------
(ABC) 10 Centering ==
(ABCDEF) 10 Centering ==
(ABCDEF) 3 Centering ==
(ABCDEF) 6 Centering ==
|


nobsun
#4089()
Rating0/2=0.00
文字列を指定のカラム幅にセンタリング配置する関数を示してください。文字列の長さが指定した幅より長い場合には文字列の両端をできるだけ均等に切り落して指定幅に収めてください。1文字は1カラムに収まるものと仮定してかまいません。
[ reply ]