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:只读,提供了在打印页面上绘图的Graphic。
HasMorePages:指示是否还要继续打印。
MarginBounds:只读,表示边距以内的页面部分的矩形区域。
PageBounds:只读,表示页面全部区域的矩形区域。
PageSettings:只读,当前页的页设置,是一个PageSettings类。
在代码中使用了Graphics属性,这也是打印必须要使用的,获得Graphics之后,就可以在这上面打印(作画)了。
最后打印完毕,触发PrintDocument1的EndPrint事件。
来看看运行情况:
按下打印按钮
由于我的电脑上没有真实的打印机,选择Xps虚拟打印机(这也是安装office后微软提供的虚拟打印机),按下打印对话框中的”打印“按钮,
接着就会出现保存文件对话框:
ok,保存到d盘,反正不是真实打印,名称随便。当然真实打印不会出现询问你保存到文件的。
好了,按下”保存“,马上就会提示打印完毕:
来看看刚才保存的”dd.oxps“文件,双击就可以使用默认的 xps查看器 打开:
再提醒一下,如果是真实打印机,那么就不会打印到文件。
学习更多vb.net知识,请参看 vb.net 教程 目录
阅读全文
0 0
- vb.net 教程 11-1 打印组件 4 PrintDocument 1
- vb.net 教程 11-1 打印组件 4 PrintDocument 4
- vb.net 教程 11-1 打印组件 4 PrintDocument 2
- vb.net 教程 11-1 打印组件 4 PrintDocument 3
- vb.net 教程 11-1 打印组件 1 基础
- vb.net 教程 11-1 打印组件 2 PrintDialog 1
- vb.net 教程 11-1 打印组件 2 PrintDialog 2
- vb.net 教程 11-1 打印组件 3 PageSetupDialog
- vb.net 教程 11-1 打印组件 5 PrintPreviewDialog
- [VB.NET]PrintDocument如何打印水晶报表喔?
- vb.net 中隐藏Printdocument“正在打印”窗口
- vb.net 教程 12-4 msHtml 1
- vb.net 教程 1-4 数据类型:数值数据1
- vb.net 教程 4-4 目录操作 Directory 1
- vb.net 教程 3-11 窗体控件综合编程 1
- vb.net 教程 4-1 获取磁盘驱动器信息 DriveInfo
- vb.net 教程 4-2 目录操作 DirectoryInfo 1
- vb.net 教程 4-3 文件操作 FileInfo 1
- Android【官方教程】NDK Android.mk
- 跳跃游戏II
- H5 video 播放器demo
- LeetCode之Sum of Left Leaves
- git暂存区[重要]
- vb.net 教程 11-1 打印组件 4 PrintDocument 1
- 程序员想换行该怎样抉择
- Content provider 中getPathSegments用途
- Android绘图机制与处理技巧(三)Android图像处理之色彩特效处理
- spark分析航班总拖延时间
- c/c++整理--c++面向对象(4)
- python3 TypeError: a bytes-like object is required, not 'str'
- linux学习第四篇--拒绝懒人安装linux
- 我的考试参考