C# 在PostScript中添加表单

C# 在PostScript中添加表单,c#,postscript,C#,Postscript,我有一个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 当我在ghostview中查看时,会出现

我有一个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
当我在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 
/myfrm
>def
.....
.....
.....
新路径
gsave
3800 5025翻译
3221.875 2575刻度
myfrm execform
格雷斯托
封闭路径

但是没有显示文本

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

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


这段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
%!
/C60{/Courier findfont 60 scalefont setfont 30 700 moveto}def
/myfrm
>def
C60(第1页)显示myfrm execform showpage
C60(第2页)显示myfrm execform showpage
C60(第3页)显示myfrm execform showpage

这就是你要找的吗?

你能提供完整的例子吗,因为两人都给出了错误。postscript中的文本框如何?也许您可以引用您遇到的错误?我不知道你所说的“postscript中的文本框”是什么意思。画一个矩形(边框)并在框内写下文本。事实上,我有一个转换器htmltops,希望在postscript中插入该工具多次生成的ps,很抱歉,我在末尾忘记了(def),现在没有错误,但没有显示任何内容(请参见我的问题),可能没有显示任何内容,因为您有一个字符串要显示
(我的名字是…
),但是没有定义字体…类似的东西,如何传递类似3800 5025 translate 3221.875 2575 scale execform的东西如果我有一个ps文件,我可以在表单中写入它吗?
/myfrm <<
/FormType 1
...
>> def
...
myfrm execform
/myfrm /Form findresource execform
%!
/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