16,552
社区成员
发帖
与我相关
我的任务
分享
'处理打印事件
Private WithEvents PrintText As New PrintDocument
'精确打印事件
Private Sub PrintText_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintText.PrintPage
Dim ps As New PageSettings
Dim myPaperSize As System.Drawing.Printing.PaperSize
myPaperSize = New System.Drawing.Printing.PaperSize("A4+", 210, 600)
ps.PaperSize = myPaperSize '设置为指定的纸张
ps.Landscape = False
PrintText.DefaultPageSettings = ps
PrintText.PrinterSettings.PrinterName = ps.PrinterSettings.PrinterName
End If
Dim Fmt As New StringFormat(StringFormatFlags.LineLimit)
Dim RectPrintingArea As New RectangleF
Dim Font As Font = New Font(New FontFamily("宋体"), 8, FontStyle.Bold)
Dim temp as string = "打印内容"
RectPrintingArea = New RectangleF(10, 10, 50, 20)
e.Graphics.DrawString(temp, Font1, Brushes.Black, RectPrintingArea, Fmt)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
'PrintDocument对象作成
Dim pd As New System.Drawing.Printing.PrintDocument
'PrintPage事件处理器追加
AddHandler pd.PrintPage, AddressOf pd_PrintPage
'PageSetupDialog类作成
Dim psd As New PageSetupDialog
'指定PrintDocument
psd.Document = pd
'表示页面设置窗体
If psd.ShowDialog() = DialogResult.OK Then
'OK被点击时打印
pd.Print()
End If
End Sub
Private Sub pd_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs)
'读取图片
Dim img As Image = Image.FromFile("test.bmp")
'描绘图片
e.Graphics.DrawImage(img, e.MarginBounds)
'没有下一页时通知
e.HasMorePages = False
'资源释放
img.Dispose()
End Sub