Vb.net 打印分组框及其内容,并以A4大小打印
我正在打印组框,但打印不正确。 如何在A4大小的纸张上打印和安装。 这是我的密码Vb.net 打印分组框及其内容,并以A4大小打印,vb.net,Vb.net,我正在打印组框,但打印不正确。 如何在A4大小的纸张上打印和安装。 这是我的密码 Private Sub printbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles printbtn.Click PrintDialog1.Document = PrintDocument1 'PrintDialog associate with PrintDocument. If PrintD
Private Sub printbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles printbtn.Click
PrintDialog1.Document = PrintDocument1 'PrintDialog associate with PrintDocument.
If PrintDialog1.ShowDialog() = DialogResult.OK Then
PrintDocument1.Print()
End If
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim x As Single = e.MarginBounds.Left
Dim y As Single = e.MarginBounds.Top
Dim bmp As New Bitmap(Me.GroupBox1.Width, Me.GroupBox1.Height)
Me.GroupBox1.DrawToBitmap(bmp, New Rectangle(0, 0, Me.GroupBox1.Width, Me.GroupBox1.Height))
e.Graphics.DrawImage(DirectCast(bmp, Image), x, y)
End Sub
并获得如下输出代码如下:
Dim WithEvents PrintDocument1 As Printing.PrintDocument = New Printing.PrintDocument
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim x As Single = e.MarginBounds.Left
Dim y As Single = e.MarginBounds.Top
Dim bmp As New Bitmap(Me.GroupBox1.Width, Me.GroupBox1.Height)
Me.GroupBox1.DrawToBitmap(bmp, New Rectangle(0, 0, Me.GroupBox1.Width, Me.GroupBox1.Height))
'Get the A4 size
Dim limitX As Integer = e.PageBounds.Width
'use this to reduce your screenshot for the A4 format page
Dim reduceMe As Double = limitX / Me.GroupBox1.Width
Dim reducedBmp As New Bitmap(bmp, CInt(Me.GroupBox1.Width * reduceMe), CInt(Me.GroupBox1.Height * reduceMe))
e.Graphics.DrawImage(reducedBmp, x, y)
End Sub
这个怎么样:
Dim srcRect As Rectangle = GroupBox1.ClientRectangle
Dim desRect As New Rectangle(e.MarginBounds.X, e.MarginBounds.Y, e.MarginBounds.Width, GroupBox1.Height)
Dim bmp As New Bitmap(srcRect.Width, srcRect.Height)
GroupBox1.DrawToBitmap(bmp, srcRect)
e.Graphics.SmoothingMode = SmoothingMode.HighQuality
e.Graphics.DrawImage(bmp, desRect, srcRect, GraphicsUnit.Pixel)
bmp.Dispose()
祝您好运。您需要调整页面宽度和/或。