代码之家  ›  专栏  ›  技术社区  ›  Haider

在PostScript中添加表单

  •  2
  • Haider  · 技术社区  · 12 年前

    我有一个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
    

    当我在重影视图中查看时,它会给我错误。任何关于我做错了什么的建议,以前我所做的是从文本中创建一个图像,并以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 
    

    但未显示任何文本

    2 回复  |  直到 12 年前
        1
  •  3
  •   KenS    12 年前

    您已经定义了Form资源的实例,但在调用execform之前尚未加载该资源。您需要:

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

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

    2) 在执行之前加载资源

    /myfrm /Form findresource execform
    
        2
  •  2
  •   Kurt Pfeifle    12 年前

    此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
    

    这就是你要找的吗?