vb.net 教程 11-1 打印组件 4 PrintDocument 1

来源:互联网 发布:程序员考试考英语吗 编辑:程序博客网 时间:2024/06/05 10:16
前几节讲了PrintDialog、PageSetupDialog,实际对应了打印机设置、页面设置,
但是,光靠设置是不能完成打印的。
本节讲的PrintDocument就是完成打印的组件。
PrintDocument提供了Print()方法,实际触发它的PrintPage()事件,在该事件中完成打印。
同时,PrintDocument组件还提供了EndPrint()事件,通过这个事件,可以获知打印完成情况。

直接看例子:

来看具体的代码:
    '按下打印按钮    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click        PrintDialog1.Document = PrintDocument1        If PrintDialog1.ShowDialog = DialogResult.OK Then            TextBox1.Text &= "开始打印" & ControlChars.CrLf            PrintDocument1.Print()        End If    End Sub    '打印页面    Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage        Dim g As Graphics = e.Graphics        g.DrawRectangle(New Pen(New SolidBrush(Color.Red), 2), New Rectangle(10, 0, 100, 60))        g.DrawString("这是一个打印的例子", New Font("宋体", 20), New SolidBrush(Color.Blue), New Point(10, 62))        g.DrawImage(PictureBox1.Image, New Rectangle(10, 100, 600, 400), New Rectangle(0, 0, PictureBox1.Image.Width, PictureBox1.Image.Height), GraphicsUnit.Pixel)    End Sub    '打印完毕    Private Sub PrintDocument1_EndPrint(sender As Object, e As PrintEventArgs) Handles PrintDocument1.EndPrint        TextBox1.Text &= "打印完毕"    End Sub
我先将代码做个分析,看完你就会觉得很简单:
1、先将PrintDialog1的Document属性设置为PrintDocument1,这一步也可以在vs编辑器中PrintDialog1的属性那里设置。
2、接着,显示打印对话框,如果是确定的话,那就调用PrintDocument1的Print()方法。
由于调用了Print()方法,引发PrintDocument1.PrintPage事件,
在PrintPage事件中才是真正的打印:
PrintPage的参数e,这是一个PrintPageEventArgs类,提供了6个属性:
    Cancel:指示是否取消打印。
    Graphics:只读,提供了在打印页面上绘图的Graphic。
    HasMorePages:指示是否还要继续打印。
    MarginBounds:只读,表示边距以内的页面部分的矩形区域。
    PageBounds:只读,表示页面全部区域的矩形区域。
    PageSettings:只读,当前页的页设置,是一个PageSettings类。

在代码中使用了Graphics属性,这也是打印必须要使用的,获得Graphics之后,就可以在这上面打印(作画)了。
最后打印完毕,触发PrintDocument1的EndPrint事件。

来看看运行情况:
按下打印按钮


由于我的电脑上没有真实的打印机,选择Xps虚拟打印机(这也是安装office后微软提供的虚拟打印机),按下打印对话框中的”打印“按钮,
接着就会出现保存文件对话框:

ok,保存到d盘,反正不是真实打印,名称随便。当然真实打印不会出现询问你保存到文件的。
好了,按下”保存“,马上就会提示打印完毕:

来看看刚才保存的”dd.oxps“文件,双击就可以使用默认的 xps查看器 打开:


再提醒一下,如果是真实打印机,那么就不会打印到文件。

学习更多vb.net知识,请参看 vb.net 教程 目录


原创粉丝点击