VB可以用CurrentX、CurrentY 属性实现定位打印。用ScaleMode 属性确定打印机对象坐标的度量单位。
站在用户的角度思考问题,与客户深入沟通,找到丰顺网站设计与丰顺网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站制作、成都外贸网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟主机、企业邮箱。业务覆盖丰顺地区。
CurrentX、CurrentY 属性,返回或设置下一次打印或绘图方法的 水平 (CurrentX) 或垂直
(CurrentY) 坐标。
ScaleMode 属性,当使用图形方法或调整控件位置时,返回或设置一个值,该值指示对象坐标的度量单位。
具体实现代码:
Option Explicit
Dim X As Long
Dim y As Long
Dim fnt As Variant
Dim txt As String
Dim dy As Variant
Public Function prnt(X As Variant, y As Variant, fnt As Variant, txt As Variant)
Printer.CurrentX = X
Printer.CurrentY = y
Printer.FontSize = fnt
Printer.Print txt
End Function
Private Sub Command1_Click()
Printer.ScaleMode = 6 '以mm定位
Printer.CurrentX = 10
Printer.CurrentY = 20
fnt = 12
txt = "YD(0)"
dy = prnt(X, y, fnt, txt)
Printer.EndDoc
End Sub
用PrintForm控件,在Visual Basic PowerPacks项目列表中vb2008 SP1以后版本就有了,下面是代码
Imports System.Drawing.Printing
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'先设置打印页面的页边距
With Me.PrintForm1
Dim myMargins As New Margins '页边距设置信息是存放在这个Margins类型的对象中的
With myMargins '分别设置上下左右边距,
.Left = 12
.Right = 12
.Top = 12
.Bottom = 12
End With
.PrinterSettings.DefaultPageSettings.Margins = myMargins '把myMargins对象赋给PrintForm1的设置属性
End With
Me.Button1.Visible = False '这个是在打印的时候隐藏打印按钮
Me.PrintForm1.Form = Me '设置要打印的窗体
Me.PrintForm1.Print() '调用打印窗体方法
Me.Button1.Visible = True '再把隐藏的打印按钮显示出来
End Sub
可以调用窗体的PrintForm方法用打印机打印整个窗体,比如
[窗体名字.]PrintForm
如果省略窗体名字表示打印当前窗体。
需要注意的是,用PrintForm方法时必须先显示窗体。打印的内容是整个窗体图像,包括菜单栏,标题栏等。另外,如果窗体包括图形,必须将窗体的AutoRedraw属性设为True时才可以。