Nemo #6400(2008/05/31 21:08 GMT) [ PostScript ] Rating0/0=0.00
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 ==
Rating0/0=0.00-0+
[ reply ]
Nemo
#6400()
[
PostScript
]
Rating0/0=0.00
PostScript で。 PostScript で文字数単位でやる実用性はほとんど無いでしょうね。 通常はフォント指定して文字列幅を計算、幅にあわせて切り捨てるなり圧縮するなり、でしょうから。
%!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 ==Rating0/0=0.00-0+
[ reply ]