我用VB写了个有打印功能的小程序,用的是斑马的标签打印机Zebra  Z6M Plus (200dpi),程序是在电脑A上编写调试完成的。可是当我把程序考到电脑B上用时,打印出来的格式(主要是位置)与电脑A的完全不同,用的是同一台打印机,请问各位大侠,这是为什么?该如何解决呢?其中打印部分的代码如下:Private Sub Commandprintlable_Click()
frmlabel.Refresh '刷新标签
'''''''选择标签打印机
    Dim i As Long
    For i = 0 To Printers.Count - 1
     If Printers(i).DeviceName = "Zebra  Z6M Plus (200dpi)" Then
            Set Printer = Printers(i)
            Exit For
        End If
    Next
    Debug.Print "选择为", i, Printer.DeviceName 'Debug的内容选择为+设备名字
    
    ''''''''''''''''''以下为打印的内容----------需要编辑
'Printer.Orientation = vbPRORPortrait '纵向打印  文档打印以纸的窄边作顶部
Printer.Orientation = vbPRORLandscape '横向打印  文档打印以纸的宽边作顶部    Printer.FontSize = 19
    Printer.Print
    Printer.Print
    Printer.Print
    Printer.Print
'    Printer.Print
    Printer.CurrentX = 3500
    Printer.FontSize = 14
    Printer.Print Text1.Text; Spc(25); Text5.Text; "mm"; "×"; Text12.Text; "mm"; "×"; Text13.Text; "m" '牌号,厚度,宽度,长度
'    Printer.CurrentX = 8000
'    Printer.Print Text5.Text; '厚度
'    Printer.CurrentX = 9000
'    Printer.Print Text12.Text '宽度
'    Printer.CurrentX = 10000
'    Printer.Print Text13.Text '长度    Printer.FontSize = 22
'    Printer.Print
    Printer.Print
    Printer.FontSize = 14
    Printer.CurrentX = 2500
    Printer.Print Combobiaozhun.Text; '标准
    Printer.CurrentX = 9100
    Printer.Print Text6.Text; '厚度
    
    Printer.FontSize = 30
    Printer.Print
'    Printer.Print
'    Printer.Print
    Printer.FontSize = 14
    Printer.CurrentX = 2850
    Printer.Print Text2.Text; '卷箱号
    Printer.CurrentX = 9180
    Printer.Print Text7.Text; '表面加工
    
    Printer.FontSize = 28
'    Printer.Print
'    Printer.Print
    Printer.Print
    Printer.FontSize = 14
    Printer.CurrentX = 3150
    Printer.Print Text3.Text; '卡片号
    Printer.CurrentX = 8950
    Printer.Print Combodengji.Text; '等级
    
    Printer.FontSize = 28
'    Printer.Print
'    Printer.Print
    Printer.Print
    Printer.FontSize = 14
    Printer.CurrentX = 3500
    Printer.Print Text4.Text; "kg"; Spc(34); Combo1.Text '毛重
'    Printer.CurrentX = 9100
'    Printer.Print Combo1.Text; '边部
    
    Printer.FontSize = 26
'    Printer.Print
'    Printer.Print
    Printer.Print
    Printer.FontSize = 14
    Printer.CurrentX = 2845
    Printer.Print Text9.Text; "kg"; Spc(15); Text10.Text '净重'日期
'    Printer.CurrentX = 5800
'    Printer.Print Text10.Text; '日期
        Printer.EndDoc '把这一句加上
'    Call sub_SaveData
'    Exit Sub
End Sub

解决方案 »

  1.   

    每台机器的计算器时钟是存在差异。所以当您使用Printer.CurrentX = 3150坐标进行定位时是有差异,您可以通过调打印机,或代码进行重新调。
      

  2.   


       '打印机设置
       Printer.Orientation = 1       '1 - 纵向打印     2 - 横向打印
       Printer.Height = 10 * 567
       Printer.Width = 5 * 567
       Printer.ScaleWidth = 210
       Printer.ScaleHeight = 297
       Printer.ScaleMode = 6         '设置打印的单位
                                     '1 单位缇,每英寸1440缇
                                     '2 单位点,每英寸72点
                                     '3 单位像素
                                     '5 英寸
                                     '6 毫米
                                     '7 厘米 建议用毫米   Printer.PaperSize = vbPRPSA4  '定义纸张大小为A4
       Printer.FontSize = 11   Printer.ScaleLeft = -0.75 * 1440
       Printer.ScaleTop = -0.5 * 1440