我有一个c#应用程序,我想在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
但没有显示文字
答案 0 :(得分:3)
您已经定义了一个Form资源的实例,但是在调用execform之前还没有加载该资源。你要么:
1)只需定义表单字典(但不将其存储为资源)
/myfrm <<
/FormType 1
...
>> def
...
myfrm execform
2)在执行之前加载资源
/myfrm /Form findresource execform
答案 1 :(得分: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
这是你要找的吗?