Private Sub Command1_Click()Printer.Orientation = 2 '横向打印
Printer.ScaleMode = vbTwips   
Printer.CurrentX = 2000
Printer.CurrentY = 2000
Me.PrintForm
Printer.EndDocEnd Sub打印出来不管currentx /y 为多少  form始终在A4纸的左上角
*********************************************************************
尝试了MSDN中的帮助:
Printer 对象有以下刻度属性: 
ScaleMode
ScaleLeft 和 ScaleTop
ScaleWidth 和 ScaleHeight
TScaleLeft 和 ScaleTop 属性分别定义打印页左上角的 x 坐标和 y 坐标。通过改变 ScaleLeft 和 ScaleTop 的值,可改变打印页的左边距和上边距。例如,通过下列语句,用 ScaleLe 和 ScaleTop 可指定打印的窗体 (form1) 在页中心:
Printer.ScaleLeft = -((Printer.Width - form1.Width) / 2)
Printer.ScaleTop = -((Printer.Height - form1.Height)/ 2)也还是无效*********************************************************************我的目的: 让form打印在A4纸的中心  或者可以调整边距,谢谢

解决方案 »

  1.   

    Private Sub Command1_Click()
    Printer.CurrentY = 1000
    Printer.FontSize = 20
    Printer.CurrentX = 800
    Printer.Print "aaa"
    Printer.CurrentX = 1000
    Printer.Print "bbb"
    Printer.EndDoc
    End Sub
      

  2.   

    Printer.ScaleLeft =-1  就这样啊
    Printer.ScaleLeft = -((Printer.Width - form1.Width) / 2) 这个单位不对 无效了吧
      

  3.   

    printer.ScaleLeft=数值   左边距
      

  4.   

    Printer.ScaleMode = vbCentimeters   '计算单位(厘米)
    Printer.ScaleWidth = 21             '设置纸宽(21厘米)
    Printer.ScaleHeight = 29            '设置纸高(29厘米)