C#中的打印

文档及代码下载:http://www.dingos.cn/index.php?topic=247.0


一个简单的示例 - 通过C#实现打印文本框中的内容
实现如图:

  使用控件执行打印。实现打印的主要组件是“PrintDocument”控件 。使用这个控件调用“Print” 函数实现“PrintPage”事件 。如下是常规命令:
打印事件:



说明:
    PrintDocument.Print 方法:指定打印输出的方法是处理
    PrintPage事件并使用PrintPageEventArgs中包含的 Graphics。

 

打印页事件:
实现:



说明:

  • PrintPageEventArgs类:为 PrintPage 事件提供数据。
  • PrintPageEventArgs.MarginBounds 属性:获取表示边距以内的页面部分的矩形区域。
  • Font 类:定义特定的文本格式,包括字体、字号和字形属性。无法继承此类。
  • SolidBrush 类:定义单色画笔。画笔用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。无法继承此类。
  • PrintPageEventArgs.Graphics 属性:获取用于绘制页的 Graphics。
  • Graphics.DrawString 方法:使用指定 StringFormat 的格式化属性,用指定的 Brush 和 Font 对象在指定的位置绘制指定的文本字符串。
    参数:
    • s:要绘制的字符串。
    • font:Font,它定义字符串的文本格式。
    • brush:Brush,它确定所绘制文本的颜色和纹理。
    • x:所绘制文本的左上角的 x 坐标。
    • y:所绘制文本的左上角的 y 坐标。
    • format:StringFormat,它指定应用于所绘制文本的格式化属性(如行距和对齐方式)。
  • StringFormat 类:封装文本布局信息(如对齐、文字方向和 Tab 停靠位),显示操作(如省略号插入和国家标准 (National) 数字替换)和 OpenType 功能。无法继承此类。
  • PrintPageEventArgs.HasMorePages 属性:获取或设置一个值,该值指示是否打印附加页。若应打印附加页,则为 true;否则为 false。默认为 false。
  • Brush.Dispose 方法:释放由此 Brush 对象使用的所有资源。
    • 调用 Dispose 将允许重新分配由此 Brush 对象使用的资源以用于其他目的。
    • 使用完 Brush 后调用 Dispose。Dispose 方法使 Brush 处于不可用状态。
    • 调用完 Dispose 后,必须释放对 Brush 的所有引用,这样垃圾回收器才能收回 Brush 占用的内存。


    点击“Print”菜单将调用“PrintFile_Click”。这条线路首先访问PrintDialog对象以便文档准备打印。使用“ShowDialog”对话框以便用户能够设置打印属性并决定是否需要打印。在调用“ThePrintDocument.Print方法”后将开始打印过程。系统自动调用“PrintPage”事件打印需要的页面信息。“PrintPageEventArgs”参数“ev”包含打印设备内容,“ev.Graphics”用户绘制打印机。在这个例子中我们将从Rich Text Edit控件中使用StringReader逐行读取信息。 “StringReader”类类似“stream”一样处理字符串并可以以使用ReadLine方法从text edit控件中逐行读取信息。可以根据边框接收位置及字体的大小。我们感兴趣的是记事本可以预览打印机的字体长度,通过使用GetHeight方法(printFont.GetHeight(ev.Graphics()))获得打印机设备内容。因为在屏幕上字体的象素和打印机上的象素是不同的。“PrintPageEventArg”的“HasMorepages”表示连续读取“PrintPage”事件中读取在textbox中比当前页面多的行。

打印预览:
实现:


 


说明:

  • StringReader 类:实现从字符串进行读取的 TextReader。
  • PrintPreviewDialog 类:表示包含 PrintPreviewControl 的对话框窗体。创建 PrintPreviewDialog 的实例时,Document 属性被初始化为空引用。可以在运行时更改这一属性的值。
  • PrintPreviewDialog.Document 属性:获取或设置要预览的文档。
    • 属性值:PrintDocument,它表示要预览的文档。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值