VB.Net 操作打印机

首先创建一个打印机类,继承PrintDocument.重写OnBeginPrint 方法, OnPrintPage方法.

' 使用VB.net操作打印机

ImportsSystem.Drawing.Printing

ImportsSystem.IO

ImportsBarcodeLib

PublicClassTextFilePrintDocument

InheritsPrintDocument

PrivateprintFontAsFont

PrivatestreamToPrintAsStreamReader

PublicSubNew(ByValstreamReaderAsStreamReader)

MyBase.New()

Me.streamToPrint = streamReader

EndSub

ProtectedOverridesSubOnBeginPrint(ByValeAsSystem.Drawing.Printing.PrintEventArgs)

MyBase.OnBeginPrint(e)

printFont= NewFont("Arial",10)

EndSub

ProtectedOverridesSubOnPrintPage(ByValeAsSystem.Drawing.Printing.PrintPageEventArgs)

MyBase.OnPrintPage(e)

DimlppAsSingle =e.MarginBounds.Height / printFont.GetHeight(e.Graphics)

DimyPosAsSingle =0

DimcountAsSingle =0

DimleftMarginAsSingle =e.MarginBounds.Left

DimtopMarginAsSingle =e.MarginBounds.Top

DimlineAsString =streamToPrint.ReadLine()

While (count < lppAndNotlineIsnothing)

yPos= topMargin + (count * printFont.GetHeight(e.Graphics))

e.Graphics.DrawString(line,printFont,Brushes.Black,leftMargin,yPos,NewStringFormat())

count= count + 1

If (count < lpp)Then

line= streamToPrint.ReadLine()

EndIf

EndWhile

If (line <> nothing) Then

e.HasMorePages= True

Else

e.HasMorePages= False

EndIf

EndSub

EndClass

-----------------

新建一个页面.添加一个按钮.




按钮的点击事件如下

Imports System.IO

Imports System.Drawing.Printing

PrivateSubprintButton_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesprintButton.Click

Try

DimstreamToPrintAsStreamReader= NewStreamReader("aa.txt")

Try

' 使用缺省打印机

DimpdAsTextFilePrintDocument= NewTextFilePrintDocument(streamToPrint)

IfNotstoredPageSettingsIsnothingThen

pd.DefaultPageSettings = storedPageSettings

EndIf

DimdlgAsNewPrintDialog()

dlg.Document= pd

DimresultAsDialogResult= dlg.ShowDialog()

If (result = System.Windows.Forms.DialogResult.OK) Then

pd.Print()

EndIf

Finally

streamToPrint.Close()

EndTry

CatchexAsException

MessageBox.Show("error:" + ex.Message)

EndTry

EndSub

文件存放目录



DimstreamToPrintAsStreamReader = NewStreamReader("aa.txt")

这个参数是需要打印文件的目录

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...