02/10/2018, 00:55

Hướng dẫn lập trình in winform (print this window form vb.net)

Hôm nay, mình xin hướng dẫn các bạn cách in window form. Nhiều lúc, mình muốn in windows form giao diện của ứng dụng, thì chúng ta thường dùng nút Print Screen, trên bàn phím, sau đó dán vào ứng dụng soạn thảo hay chỉnh sửa hình ảnh rồi mình in ra giấy. ...

Hôm nay, mình xin hướng dẫn các bạn cách in window form.

Nhiều lúc, mình muốn in windows form giao diện của ứng dụng, thì chúng ta thường dùng nút Print Screen, trên bàn phím, sau đó dán vào ứng dụng soạn thảo hay chỉnh sửa hình ảnh rồi mình in ra giấy.

Nhiều lúc bạn muốn in form hiện tại, để chụp những thông báo lỗi từ phần mềm, và gởi cho admin để support lỗi thì làm thế nào để có thể chụp màn hình winform lại một cách nhanh chóng.

Để chụp để màn hình của windows form, mình sử dụng thư viện Drawing.Printing trong framework.

Dưới đây là giao diện ứng dụng:

print_window_form_vb_net

Source code demo:

Imports System.Drawing.Printing
Public Class Form1
    Dim WithEvents mPrintDocument As New PrintDocument
    Dim mPrintBitMap As Bitmap

    Private Sub m_PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles mPrintDocument.PrintPage
        Dim lWidth As Integer = e.MarginBounds.X + (e.MarginBounds.Width - mPrintBitMap.Width)  2
        Dim lHeight As Integer = e.MarginBounds.Y + (e.MarginBounds.Height - mPrintBitMap.Height)  2
        e.Graphics.DrawImage(mPrintBitMap, lWidth, lHeight)

        e.HasMorePages = False
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        mPrintBitMap = New Bitmap(Me.Width, Me.Width)
        Dim lRect As System.Drawing.Rectangle
        lRect.Width = Me.Width
        lRect.Height = Me.Width
        Me.DrawToBitmap(mPrintBitMap, lRect)

        mPrintDocument = New PrintDocument
        mPrintDocument.Print()
    End Sub
End Class

Tại bài viết này, rất đơn giản, nên mình không có upload source code.

Chúc các bạn thành công!

Tags: winformprint
0