最近在设计一个银行票据打印程序,需要打印支票,进账单等多种不同尺寸规格的票据,打印方式采用直接将窗体打印,打印机开机后打印第一张往往能够正常,打印好第一张后就要放入两次纸,但没有打印内容,接着打印第二张相同票据时里面内容的位置就全部靠下面.
请问:
1.能否在程序中随时随意自定义不同纸张大小,而且不影响系统及其他程序的纸张设置
2.怎么在打印每张票据后清除打印机中尚未打印且不用打印的"空"内容?
3.尽量使用打印窗体的方法解决!

解决方案 »

  1.   

    大哥做好了给我发个邮件 
      [email protected]
      

  2.   

    1、没问题
    2、不存在空任务
    3、直接采用printer方法在98系统和在2k系统中,对纸张的设定是不同的。
    win98下 
           直接采用    
        Const Ti As Integer = 567     '一厘米=567缇
                                      'Prn_High和Prn_Weight代表票据的高度和宽度
                                      '
        Printer.ScaleMode = vbTwips
        Printer.Height = Prn_High * Ti
        Printer.Width = Prn_Weight * Ti
        Printer.FontSize = 10win2k下 
        1、 首先必须通过代码在打印属性里增加票据的纸张定义
        2、RetVal = SelectForm("KGDefineUser", Printer_AddSize.Hwnd)   '然后调用该纸张的定义
                               
        3、printer.ScaleMode = vbTwips
        Printer.FontSize = 10
       具体如何增加纸张的定义和调用,可以搜索一下,有现成的例子
      

  3.   

    刚才用了printer对象打印,结果跟打印窗体一样,都用插多几次纸
      

  4.   

    http://support.microsoft.com/?scid=kb;zh-cn;282474&spid=2971&sid=118
      

  5.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=195778
      

  6.   

    www.wave12.com有个打印控件你去看看或许有帮助
      

  7.   

    到Ms的网上找找,有一个专门针对WIN2K中自定义纸张的方法。
    直接用PRINTER对象就可以完成你所需要的所有功能,肯定。