2

我有 ac# 应用程序,我想在 postscript 文件中插入一条消息,所以我创建了一个像

%%BeginResource: form myfrm
/myfrm 
<<
/FormType 1
/BBox [ 0 0 771 618] def
/Matrix [1 0 0 1 0 0] def
/PaintProc{pop
..........
}
>> /Form defineresource pop
%%EndResource

当我像这样在页面中插入页面时

newpath
gsave
3800 5025 translate
3221.875 2575 scale
myfrm execform
grestore
closepath

当我在 ghostview 中查看时,它给了我错误。任何建议我做错了什么,以前我所做的是从文本创建图像并以 EPS 形式插入它工作得很好,但 ps 文件大小增加了。如果可能的话,我可以在 postscript 中插入一个文本框。

编辑后:-

/myfrm 
<<
/FormType 1
/BBox [ 0 0 771 618] 
/Matrix [1 0 0 1 0 0] 
/PaintProc{pop
0 0 moveto
(my name is ali) show
}
>> def

.....
.....
.....
newpath
gsave
3800 5025 translate
3221.875 2575 scale
myfrm execform
grestore
closepath 

但没有显示文字

4

2 回答 2

3

您已经定义了一个 Form 资源的实例,但是在调用 execform 之前您还没有加载该资源。您要么需要:

1)只定义表单字典(但不将其存储为资源)

/myfrm <<
/FormType 1
...
>> def
...
myfrm execform

2)在执行之前加载资源

/myfrm /Form findresource execform
于 2012-08-10T16:29:55.740 回答
2

这个 PostScript 代码对我有用:

%!
/C60 {/Courier findfont 60 scalefont setfont 30 700 moveto} def

/myfrm
   <<
     /Matrix [ 2 3 .1  2 0 0 ]  
     /PaintProc
        {
           /Helvetica findfont 24 scalefont setfont
           10 10 moveto
           (Your name is Haider) show
        }
     /BBox [ 0 0 450 100]
     /FormType 1
  >> def

C60 (Page 1) show myfrm execform showpage
C60 (Page 2) show myfrm execform showpage
C60 (Page 3) show myfrm execform showpage

这是你要找的吗?

于 2012-08-13T16:11:01.700 回答