1,216
社区成员
发帖
与我相关
我的任务
分享
Private Sub Prt(ByRef P As Object)
Dim QR As clsQRCode, RT As Integer, S As String, SN As String, B2() As Byte, Pic As StdPicture
Dim DX As Single, DY As Single, DW As Single, DH As Single
Dim X As Single, Y As Single, W As Single, H As Single, V As Integer, PDW As Integer
If IsNumeric(Text1.Text) Then V = CLng(Text1.Text) Else V = 1
Set QR = New clsQRCode
P.ScaleMode = 6
PDW = 1
If TypeName(P) = "Printer" Then
P.PrintQuality = 300
PDW = 4
Else
P.Cls
End If
DX = 3
DY = 3
DW = (P.ScaleWidth - 4 * DX) / 3
DH = (P.ScaleHeight - 9 * DY) / 8
For RT = 0 To 23
P.FontName = "微软雅黑"
P.FontBold = False
P.FontSize = 9
Select Case RT
Case Else
SN = "1609" & Right(Combo1.Text, 2) & Format(V + RT, "000")
End Select
S = "XXXXXX" & vbCrLf
S = S & SN & vbCrLf
S = S & "XXXX公司"
ReDim B2(Len(S) * 3 + 64)
QR.Encode B2, WideCharToMultiByte(CP_UTF8, 0, ByVal StrPtr(S), Len(S), B2(0), UBound(B2), ByVal 0, ByVal 0)
Set Pic = QR.Encode(B2, WideCharToMultiByte(CP_UTF8, 0, ByVal StrPtr(S), Len(S), B2(0), UBound(B2), ByVal 0, ByVal 0))
W = P.ScaleX(Pic.Width, vbHimetric, vbMillimeters)
H = P.ScaleY(Pic.Height, vbHimetric, vbMillimeters)
X = DX + (RT Mod 3) * (DX + DW) + 3
Y = DY + (RT \ 3) * (DY + DH) + (DH - H) / 2
P.PaintPicture Pic, X, Y
X = X + 2 + W
S = "MODEL:xxxxx-13" & Mid(SN, 5, 2)
P.CurrentX = X
P.CurrentY = Y
P.Print S
S = "INPUT:12-36V"
P.CurrentX = X
P.CurrentY = Y + P.TextHeight(S)
P.Print S
S = "S/N:" & SN
P.CurrentX = X
P.CurrentY = Y + 2 * P.TextHeight(S)
P.Print S
Set Pic = LoadResPicture("LOGO", vbResBitmap)
W = P.ScaleX(Pic.Width, vbHimetric, vbMillimeters)
H = P.ScaleY(Pic.Height, vbHimetric, vbMillimeters)
X = DX + (RT Mod 3) * (DX + DW) + 1
Y = DY + (RT \ 3) * (DY + DH) + 1
P.PaintPicture Pic, X, Y
P.DrawWidth = PDW
P.DrawStyle = 0
P.Line (DX + (RT Mod 3) * (DX + DW), DY + (RT \ 3) * (DY + DH))-((1 + RT Mod 3) * (DX + DW), (1 + RT \ 3) * (DY + DH)), vbBlack, B
S = "XXXXXX终端"
P.FontBold = True
P.FontSize = 10
P.CurrentX = X + W + (DW - 1 - W - P.TextWidth(S)) / 2
P.CurrentY = Y
P.Print S
S = "XXXX00056"
P.FontBold = False
P.FontSize = 9
P.CurrentX = X + W + (DW - 1 - W - P.TextWidth(S)) / 2
P.CurrentY = Y + P.TextHeight(S)
P.Print S
S = "XXXXXXX公司"
P.FontName = "微软雅黑"
P.FontSize = 11
P.CurrentX = DX + (RT Mod 3) * (DX + DW) + (DW - P.TextWidth(S)) / 2
P.CurrentY = (1 + RT \ 3) * (DY + DH) - P.TextHeight(S) * 1.8
P.Print S
S = "xxxxxx CO., LTD"
P.FontName = "微软雅黑"
P.FontSize = 8
P.CurrentX = DX + (RT Mod 3) * (DX + DW) + (DW - P.TextWidth(S)) / 2
P.CurrentY = (1 + RT \ 3) * (DY + DH) - P.TextHeight(S) * 1.1
P.Print S
Next
P.DrawWidth = 1
P.DrawStyle = 2
P.Line (DX / 2, DY / 2)-(P.ScaleWidth - DX / 2, P.ScaleHeight - DY / 2), RGB(128, 128, 128), B
For RT = 1 To 2
P.Line (DX / 2 + (DW + DX) * RT, DY / 2)-(DX / 2 + (DW + DX) * RT, P.ScaleHeight - DY / 2), RGB(128, 128, 128)
Next
For RT = 1 To 7
P.Line (DX / 2, DY / 2 + (DH + DY) * RT)-(P.ScaleWidth - DX / 2, DY / 2 + (DH + DY) * RT), RGB(128, 128, 128)
Next
If TypeName(P) = "Printer" Then P.EndDoc
Set QR = Nothing
End Sub