如何在postscript文件中编写弧文本

时间:2012-09-26 10:25:55

标签: text postscript

我有这个,但我想让文字对齐像弧一样。有可能吗?

   /outputtext {
       /data exch def
       /rot exch def
       /xfont exch def
      /y1 exch def
     /x1 exch def
    /Times-Roman findfont
    xfont scalefont
    setfont
    x1 y1 moveto
    rot rotate
    data show

    rot neg rotate
 } def



% x y fontsize rotation (text) outputtext
20 300 12 0 (text1) outputtext
20 400 12 90 (text2) outputtext
20 500 12 90 (text3) outputtext
20 600 12 0 (text4) outputtext
showpage

3 个答案:

答案 0 :(得分:3)

Adob​​e着名的Blue Book PostScript语言教程和食谱,Adobe Systems,Addison-Wesley 1985; ISBN 0201101793 )包含一个非常好的解释如何执行此操作的示例。

参见第168页和以下屏幕截图:

enter image description here

答案 1 :(得分:3)

不确定为什么要避免translate,并且不清楚“动态”是什么意思。但是这段代码在没有翻译的情况下提供了类似旋转的效果。但是,如果没有定义中心(使用translaterotate,或使用cossin代数)和会计(不知何故),您就无法拥抱弧字符宽度。 Adobe示例代码完成了所有这些操作。我的代码不在这里。

Some wildly rotated text

%!

/rottxt { 4 dict begin
    /ang exch def
    /str exch def
    /ang ang str length div def
    { pop pop ang rotate }
    str
    kshow
end } def

30 150 moveto
/Palatino-Roman 20 selectfont
(This   is) -20 rottxt
( some  ro) 20 rottxt
(tated   T) -40 rottxt
(ext!!!!!) -100 rottxt
showpage

答案 2 :(得分:0)

我想我终于明白你要做什么了。关于translate的部分真的让我陷入了困境。 translate没什么可担心的。并且是必要的。翻译是让您控制旋转中心的位置。

因此,您希望在圆上绘制文本,但是您想要动态更改字体参数。字体在弧形中间变化。这需要一些思考。当我有更多时,我会编辑。