📄 modprint.bas
字号:
Attribute VB_Name = "ModPrint"
Option Explicit
Public HorizontalMargin, VerticalMargin As Single
'----------------------------------
'设置打印机
'----------------------------------
Public Sub SetupPrinter()
'以厘米为单位
Printer.ScaleMode = vbCentimeters
'纸张顶边
HorizontalMargin = 1 + ((21 - Printer.ScaleWidth) / 2)
VerticalMargin = 1.5 + ((29.7 - Printer.ScaleHeight) / 2)
End Sub
'----------------------------------
'打印
'----------------------------------
Public Sub QuickPrint(strPrintText)
Printer.Print "";
Printer.Print strPrintText
Printer.EndDoc
End Sub
'----------------------------------
'打印字体类型大小
'----------------------------------
Public Sub SetFont(size As Integer, b, i, u, s As Boolean)
With Printer
.ForeColor = RGB(0, 0, 0) 'Black color
.fontname = "宋体"
.FontSize = size
.FontBold = b
.FontItalic = i
.FontUnderline = u
.FontStrikethru = s
End With
End Sub
'------------------------
'居中
'-------------------------
Public Sub AlignCenter(ByVal strText As String)
Printer.CurrentX = ((Printer.ScaleWidth - Printer.TextWidth(strText)) / 2)
End Sub
'------------------------
'居右
'-------------------------
Public Sub AlignRight(ByVal strText As String)
Printer.CurrentX = Printer.ScaleWidth - 2
End Sub
'------------------------
'居左
'-------------------------
Public Sub AlignLeft(ByVal strText As String)
Printer.CurrentX = Printer.CurrentX + 2
End Sub
'-------------------------
'获取 X 坐标
'-------------------------
Public Function GetX() As Single
GetX = Printer.CurrentX
End Function
'-------------------------
'获取 Y 坐标
'-------------------------
Public Function GetY() As Single
GetY = Printer.CurrentY
End Function
'------------------------
'打印线条
'-------------------------
Public Sub PrintLine(Optional LeftPos As Single = 0)
Printer.Line (LeftPos, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY)
End Sub
'-------------------
'检查页长
'-------------------
Public Sub CheckPageLen()
If EndOfPage Then
Printer.NewPage
End If
End Sub
'------------------------
'是否末页
'-------------------------
Public Function EndOfPage() As Boolean
Dim n As Single
n = Printer.ScaleHeight - 2
If Printer.CurrentY = n Then EndOfPage = True
End Function
'-------------------------------------------------------------
'打印标题
'-------------------------------------------------------------
Public Sub PrintHeader(strheader As String)
Printer.CurrentY = VerticalMargin - 1
Printer.CurrentX = HorizontalMargin
Printer.Print "";
SetFont 36, True, True, True, False
pCenter strheader
Printer.Print strheader
Printer.EndDoc
End Sub
'-------------------------------------------------------------
'打印页脚
'-------------------------------------------------------------
Public Sub PrintFooter(strfooter As String)
Printer.CurrentY = Printer.ScaleHeight - 1.5
Printer.CurrentX = HorizontalMargin
Printer.Print "";
SetFont 12, False, False, False, False
AlignCenter strfooter
Printer.Print strfooter
Printer.EndDoc
End Sub
'-------------------------------------------------------------
'打印页数
'-------------------------------------------------------------
Public Sub PrintPageNum(PageNum As String)
With Printer
.CurrentY = Printer.ScaleHeight - 0.5
.CurrentX = HorizontalMargin
End With
SetFont 10, False, False, False, False
AlignCenter PageNum
Printer.Print "";
Printer.Print PageNum
Printer.EndDoc
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -