需要的组件Button1、PrintDocument1、PrintPreviewDialog1
Dim currentPage = 1
Dim totalPage = 3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
currentPage = 1
PrintPreviewDialog1.Document = PrintDocument1
PrintPreviewDialog1.Show()
End Sub
Function mydraw(ByVal gh As Graphics, ByVal page As Integer)
gh.DrawString("This is " + Str(page) + " page", New Font("黑体", 20), Brushes.Black, 0, 0)
If page >= totalPage Then Return False Else Return True
End Function
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.HasMorePages = mydraw(gh:=e.Graphics, page:=currentPage)
currentPage = currentPage + 1
End Sub
使用变量currentPage为当前正在打印的页号,totalPage为总输出页数。
每次打印完当前页,返回是否还有继续打印的页HasMorePages