Dim i As Integer Dim pageleft As Integer Dim pageheader As Integer Dim pagefooter As Integer Dim pageright As Integer Dim startx As Integer Dim starty As Integer Dim startline As Integer Dim endline As Integer Dim usewidth As Integer Dim useheight As Integer pageheader = 25 pagefooter = 25 pageleft = 20 pageright = 20
Dim pageleft As Integer
Dim pageheader As Integer
Dim pagefooter As Integer
Dim pageright As Integer
Dim startx As Integer
Dim starty As Integer
Dim startline As Integer
Dim endline As Integer
Dim usewidth As Integer
Dim useheight As Integer
pageheader = 25
pagefooter = 25
pageleft = 20
pageright = 20
'定义纸张类型A4
Printer.FontSize = 20
Printer.PaperSize = 9
Printer.ScaleMode = 6
Printer.FontBold = False
Printer.ScaleLeft = -20
Printer.ScaleTop = -25
Printer.ScaleWidth = 210
Printer.ScaleHeight = 297
usewidth = Printer.ScaleWidth - 20
useheight = Printer.ScaleHeight - 30
Printer.CurrentX = 0
Printer.CurrentY = 0
Printer.DrawWidth = 2
'打印主标题
Printer.FontSize = 20
Printer.CurrentX = (usewidth - Printer.TextWidth("")) / 2
Printer.CurrentY = Printer.ScaleTop
Printer.Print ""
'打印空白行
Printer.FontSize = 10
Printer.CurrentX = (usewidth - Printer.TextWidth("")) / 2
Printer.CurrentY = Printer.CurrentY + 1
Printer.Print ""
'打印表的内容
'首先打印第一条横线
' '打印最上边的第一条横线
Printer.CurrentX = pageleft + Printer.ScaleLeft
startline = Printer.CurrentY + 1
Printer.Line -((Printer.ScaleLeft + Printer.ScaleWidth - pageleft), Printer.CurrentY)
Printer.CurrentX = pageleft + Printer.ScaleLeft
Printer.CurrentY = Printer.CurrentY + 1
Printer.Line -((Printer.ScaleLeft + Printer.ScaleWidth - pageleft), Printer.CurrentY)
Printer.CurrentY = Printer.CurrentY + 1
For i = 0 To 45
'判断是否该页已打满
Me.MSFGKL.Row = i
If Printer.CurrentY >= useheight Then '打印横线
Printer.CurrentX = Printer.ScaleLeft + pageleft
Printer.Line -((Printer.ScaleLeft + Printer.ScaleWidth - pageleft), Printer.CurrentY)
Printer.CurrentY = Printer.CurrentY + 1
'打印页号
Printer.CurrentX = (Printer.ScaleWidth - Printer.TextWidth(Printer.Page)) / 3 - pageleft
Printer.CurrentY = useheight + 3
Printer.Print Printer.Page
Printer.NewPage
Printer.CurrentX = pageleft + Printer.ScaleLeft
Printer.CurrentY = pageheader + Printer.ScaleTop
startline = Printer.CurrentY
Else
'打印一行数据
Me.MSFGKL.Col = 0
Printer.CurrentX = ((Printer.ScaleWidth - 80) / 8 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
starty = Printer.CurrentY
Printer.Print Me.MSFGKL.Text
Me.MSFGKL.Col = 1
Printer.CurrentX = (Printer.ScaleWidth - 80) / 8 + ((Printer.ScaleWidth - 80) / 8 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
Printer.CurrentY = starty
Printer.Print Me.MSFGKL.Text
Me.MSFGKL.Col = 2
Printer.CurrentX = ((Printer.ScaleWidth - 90) / 8) * 2 + ((Printer.ScaleWidth - 90) / 8 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
Printer.CurrentY = starty
Printer.Print Me.MSFGKL.Text
Me.MSFGKL.Col = 3
Printer.CurrentX = ((Printer.ScaleWidth - 70) / 8) * 3 + ((Printer.ScaleWidth - 70) / 8 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
Printer.CurrentY = starty
Printer.Print Me.MSFGKL.Text & " "
Me.MSFGKL.Col = 4
Printer.CurrentX = ((Printer.ScaleWidth - 60) / 8) * 4 + ((Printer.ScaleWidth - 60) / 8 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
Printer.CurrentY = starty
Printer.Print Me.MSFGKL.Text & " "
Me.MSFGKL.Col = 5
Printer.CurrentX = ((Printer.ScaleWidth - 40) / 8) * 5 + ((Printer.ScaleWidth - 40) / 8 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
Printer.CurrentY = starty
Printer.Print Me.MSFGKL.Text
Me.MSFGKL.Col = 6
Printer.CurrentX = ((Printer.ScaleWidth - 40) / 8) * 6 + ((Printer.ScaleWidth - 40) / 8 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
Printer.CurrentY = starty
Printer.Print Me.MSFGKL.Text
Me.MSFGKL.Col = 7
Printer.CurrentX = ((Printer.ScaleWidth - 80) / 8) * 7 + ((Printer.ScaleWidth - 80) / 7 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
Printer.CurrentY = starty
Printer.Print Me.MSFGKL.Text Me.MSFGKL.Col = 8
Printer.CurrentX = ((Printer.ScaleWidth - 80) / 8) * 8 + ((Printer.ScaleWidth - 80) / 8 - Printer.TextWidth(Me.MSFGKL.Text)) / 8
Printer.CurrentY = starty
Printer.Print Me.MSFGKL.Text
Printer.CurrentX = pageleft + Printer.ScaleLeft
Printer.CurrentY = Printer.CurrentY + 1
Printer.Line -((Printer.ScaleLeft + Printer.ScaleWidth - pageleft), Printer.CurrentY)
Printer.CurrentY = Printer.CurrentY + 1
End If
Next i
'打印最后一条横线
Printer.CurrentX = Printer.ScaleLeft + pageleft
Printer.Line -((Printer.ScaleLeft + Printer.ScaleWidth - pageleft), Printer.CurrentY)
endline = Printer.CurrentY '打印页号
Printer.CurrentX = (Printer.ScaleWidth - Printer.TextWidth(Printer.Page)) / 8 - pageleft
Printer.Print txtGuestNum.Text & " " & txtPageNum.Text & " " & txtOperator.Text & " " & Date
Printer.EndDoc If err.Number = 0 Then
MsgBox "打印中……!请稍后。。", , ""
End If