【发布时间】:2014-03-18 02:51:35
【问题描述】:
下面的代码可以很好地打印图像和文本。
现在的问题是,如何在填满页面时自动将打印移到下一页。
也可以添加页码:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
PrintPreviewDialog1.Document = PrintDocument1
PrintPreviewDialog1.ShowDialog()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
PrintDocument1.Print()
End Sub
Private Sub printDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim rect1 As Rectangle = New Rectangle(New Point(0, 0), PictureBox1.Image.Size)
Dim rect2 As Rectangle = New Rectangle(New Point(100, 200), PictureBox1.Image.Size)
Dim fmt As StringFormat = New StringFormat()
e.Graphics.DrawImage(PictureBox1.Image, rect1)
e.Graphics.DrawString(RichTextBox1.Text, RichTextBox1.Font, New SolidBrush(Color.Red), rect2, fmt)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For S = 1 To 200
RichTextBox1.AppendText("Test Line No. - " & S & vbCrLf)
Next
End Sub
End Class
【问题讨论】:
-
当您认为您有更多页面时,您应该在
printDocument1_PrintPage中设置e.HasMorePages = True。您确定是否有更多页面的方式取决于您。一旦将HasMorePages设置为true,printDocument1_PrintPage将再次被调用。此外,您有责任跟踪页码。 -
我是初学者,在任何地方都找不到 e.HasMorePages 或 HasMorePages;您可以发布示例代码或图片来说明您的意思吗?
-
刚试了一下,报错,好像没有解决这个问题?