VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > vb >
  • vb.net 教程 11-1 打印组件 4 PrintDocument 1

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
前几节讲了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 教程 目录
 
 
 
 
————————————————
版权声明:本文为CSDN博主「VB.Net」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/uruseibest/article/details/73065844

相关教程