实例066打印文本文件

PrintDocument 类

https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.printing.printdocument?view=netcore-3.1

    要使用打印机打印数据,首先要将数据传送到打印机,并通知打印机开始打印。
    PrintDocument是Printing名称空间F定义的一个类,表示需要打印的文档。PrintDocument类对象的方法Print用于通知打印机开始打印。PrintDocument类对象有一个名为PrintPage的事件,当开始打印时,即触发该事件。

PrintDocument.PrintPage 事件

https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.printing.printdocument.printpage?view=netcore-3.1

PrintPageEventArgs 类

https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.printing.printpageeventargs?view=netcore-3.1

    PrintPageEventArgs也是Printing名称空间下定义的一个类,专门用于向打印机传送数据。
    PrintPageEventArgs类的主要属性包括:

  • Graphics,该对象负责将数据向打印机输出;
  • HasMorePages,用于判断是否还有数据未能在一页中显示;
  • MarginBounds,周边空白区域以内的区域;
  • PageSettings,当前页面设置。

Graphics 类

https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.graphics?view=dotnet-plat-ext-3.1

Graphics.DrawString 方法

https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.graphics.drawstring?redirectedfrom=MSDN&view=dotnet-plat-ext-3.1#overloads

Graphics对象的属性和方法主要包括:

  • Clip,绘图区域:
  • DpiX,水平分辨率;
  • DpiY,垂直分辨率等。

Graphics的方法包括:

  • Drawlmage,画图片;
  • DrawString,输出字符串;
  • DrawLine,画直线。

    关键字Handles用于声明处理事件的方法。除Handles外,AddHandle用于分配处理事件的方法。AddHandler的使用形式如下所示:
    AddHandler 消息,Address Of 处理方法。

    其中AddressOf表示处理方法的入口地址。

示例:

控件属性控件属性
FormNameForm1PanelNamepanel1
TextboxNametxtTextButtonNamebtnPrint
    Text打印

Public Class Form1
    Dim streamToPrint As IO.StreamReader
    Dim printFont As Font
    Dim FileName As String = "Print.txt"
    Private Sub PrintDocument(ByVal sender As Object, ByVal ev As Printing.PrintPageEventArgs)
        Dim leftMargin As Single = ev.MarginBounds.Left
        Dim topMargin As Single = ev.MarginBounds.Top
        ev.Graphics.DrawString(txtText.Text, printFont, Brushes.Black, leftMargin, topMargin, New StringFormat)
    End Sub

    Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
        printFont = New Font("宋体", 12)
        Dim pd As New Printing.PrintDocument
        AddHandler pd.PrintPage, AddressOf PrintDocument
        pd.Print()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        streamToPrint = New IO.StreamReader(FileName)
        txtText.Text = streamToPrint.ReadToEnd
        streamToPrint.Close()
    End Sub
End Class

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值