false charpath flattenpath pathbbox
テキストのバウンディングボックスを取得するために使用できます。現在のポイントが0 0
これを行うときの場合、左下の座標はにかなり近い 0 0
ので、右上の座標はテキストの幅と高さを表します。したがって、(-width / 2、-height / 2)に相対移動することにより、目的の中心点に移動してバックアップします。
回転の中心は中心点でもあるため、回転する前にそこを移動する必要があります。
%!
/w 612 def
/h 792 def
/Helvetica-Bold 120 selectfont
w .5 mul h .5 mul translate
0 0 moveto
(Sample) false charpath flattenpath pathbbox % llX llY urX urY
4 2 roll pop pop % urX urY
0 0 moveto
45 rotate
-.5 mul exch -.5 mul exch % -wid/2 -ht/2
rmoveto
(Sample) show
精度を上げるには、次のように置き換え4 2 roll pop pop
ます
exch % llX llY urY urX
4 1 roll % urX llX llY urY
exch sub % urX llX urY-llY
3 1 roll % urY-llY urX llX
sub exch % urX-llX urY-llY
そして、ポイントはどこにあってもかまいません(ただし、パスをすぐに破棄する場合でもcharpath
、パスを作成するのと同じように、現在のポイントが必要です。したがって、何らかの種類が必要です)。show
pathbbox
moveto