⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modprint.bas

📁 适合乡镇供电所使用电费处理系统v3 软件
💻 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 + -