加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 07:32:27 所属栏目:百科 来源:网络整理
导读:前几节讲了PrintDialog、PageSetupDialog,实际对应了打印机设置、页面设置, 但是,光靠设置是不能完成打印的。 本节讲的PrintDocument就是完成打印的组件。 PrintDocument提供了Print()方法,实际触发它的PrintPage()事件,在该事件中完成打
前几节讲了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,100,60))
        g.DrawString("这是一个打印的例子",New Font("宋体",20),New SolidBrush(Color.Blue),New Point(10,62))
        g.DrawImage(PictureBox1.Image,600,400),New Rectangle(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 教程 目录

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读