我如何打印我的表格?

时间:2009-06-08 19:40:44

标签: vb.net

当用户点击按钮时,我需要打印我的VB.Net Windows.Form的图像。有这么好的方法吗?

3 个答案:

答案 0 :(得分:6)

您需要使用PrintForm组件。请参阅How to: Print a Form by Using the PrintForm Component

  

PrintForm组件使您可以   快速打印表单图像   正如它在屏幕上显示的那样   不使用PrintDocument   零件。以下程序   展示如何将表单打印到打印机,   到打印预览窗口,到   封装的PostScript文件。

答案 1 :(得分:4)

如果要修改图像,以下代码将捕获位图并将其发送到打印机(在Button1上单击)

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
    ' Draw the image centered.
    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)

    ' There's only one page.
    e.HasMorePages = False
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' Copy the form's image into a bitmap.
    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)


    ' Make a PrintDocument and print.
    mPrintDocument = New PrintDocument
    mPrintDocument.Print()
End Sub
End Class

答案 2 :(得分:0)

如果您真的想要表单的快照,则必须模拟屏幕截图。这是一个sample,它会有所帮助。虽然它会很丑陋,所以你可能要考虑使用PDF或报告生成器将其作为报告。