我最近在搞一个单据打印,这种单据很特殊,epson打印机不能正确识别纸张大小,24.1cm X 7cm
但英制是 9.5 in X 2.75 in 在软件里设置的时候会产生误差,多打几张后就前移了但我同事用PB解决了,它向打印机发控制指命,内容如下:
printsend(li_job,char(27)+char(48))
printsend(li_job,char(27)+char(67)+char(22))
实现了控制,但我没有找到VB的代码我在VB下发送这个指命没有反应,我用VSPrint控件也无法解决误差有没有高手能帮我解决这个很急的问题,不甚感激!

解决方案 »

  1.   

    Printer.ScaleMode = vbCentimeters '设置计算单位为厘米
        Printer.ScaleWidth = 19           '纸张宽度
        Printer.ScaleHeight = 27          '纸张高度
        
        Printer.Font.Size = 12 '打印字号
        Printer.Font.Name = "宋体" '打印字体
        '....其它类似....
        Printer.CurrentX = 3 '打印横坐标为 3厘米
        Printer.CurrentY = 4 '纵坐标为4厘米
        Printer.Print "你要打印的内容"
        Printer.EndDoc   '将打印内容送交打印机
        'printer.KillDoc  '这一句可以撒消打印
        Printer.ScaleMode = vbTwips   '将计算单位改回默认设置'把计算单位设为厘米后
    '你可以在票证上直接测量打印位置
    '可能有一点差异,调整一下就好了VB下控制打印机的最好方法应该就是用printer对像了(既精确又好用)。
      

  2.   

    我试了一下,没用,还是每打一张上移点点,多打几张就错位了还有就是WINNT的操作系统下printer的长和宽设置是没有用的