Public Function PrintBarcode(printstr As String) As String Dim m_port As String
m_port = ReadIni("ZEBRA888T", "port")
Dim arrPrint() As String
arrPrint = Split(printstr, "^")
Open App.Path & "\print.txt" For Output As #1
'循环打印
'外层循环
Dim strPrint() As String
strPrint = Split(printstr, "$")
Dim arrLen As Integer
arrLen = UBound(strPrint) - LBound(strPrint) + 1
Dim printstring As String '打印内容
printstring = ""
For k = 0 To arrLen - 1
Dim strParam() As String
strParam = Split(strPrint(k), "^")
'内层循环
'循环打印
'打印运单上的标签
Print #1, "#!A1"
Print #1, "#IMSR65.02/55.03" '标签宽、高
Print #1, "#HV65" '浓度
Print #1, "#PR4/4/" '打印速度
Print #1, "#RX0"
Print #1, "#N13"
Print #1, "#ERN/1//0"
'以下是打印内容
Print #1, "#T09.91 #J04.06 #YN901/0U/42///" & strParam(3) & "#G" '汉字
Print #1, "#T07.96 #J39.20 #YN101/0/42///YN101#G" '字符
Print #1, "#T06.52 #J35.48 #YL0/0/00.51/74.25" '划线
Print #1, "#T07.20 #J16.00 #YB13/0P2.0M/13.46/4///12343578329-3124#G" '条码
'打印
Print #1, "#Q1#G"
Print #1, "#!P1"
Next
Close #1
On Error Resume Next
'文件字符集转换
Dim filename As String, b() As Byte, S As String
Dim ADO_Stream As Object
filename = App.Path & "\print.txt" '请修改为具体文件名
'If Dir(FileName) = "" Then Exit Sub
ReDim b(FileLen(filename))
Open filename For Binary As #1
Get #1, , b
Close #1
S = StrConv(b, vbUnicode)
Set ADO_Stream = CreateObject("ADODB.Stream")
With ADO_Stream
.Type = 2
.Mode = 3
.Charset = "utf-8"
.Open
.WriteText S
.SaveToFile filename, 2
End With
Set ADO_Stream = Nothing
FileCopy App.Path & "\print.txt", m_port
If Err.number <> 0 Then
ZebraPrint = "请确认打印机端口设置正确" ''Err.Description
Else
ZebraPrint = ""
End If
End Function好像 FileCopy 不被识别 为啥呢?
m_port = ReadIni("ZEBRA888T", "port")
Dim arrPrint() As String
arrPrint = Split(printstr, "^")
Open App.Path & "\print.txt" For Output As #1
'循环打印
'外层循环
Dim strPrint() As String
strPrint = Split(printstr, "$")
Dim arrLen As Integer
arrLen = UBound(strPrint) - LBound(strPrint) + 1
Dim printstring As String '打印内容
printstring = ""
For k = 0 To arrLen - 1
Dim strParam() As String
strParam = Split(strPrint(k), "^")
'内层循环
'循环打印
'打印运单上的标签
Print #1, "#!A1"
Print #1, "#IMSR65.02/55.03" '标签宽、高
Print #1, "#HV65" '浓度
Print #1, "#PR4/4/" '打印速度
Print #1, "#RX0"
Print #1, "#N13"
Print #1, "#ERN/1//0"
'以下是打印内容
Print #1, "#T09.91 #J04.06 #YN901/0U/42///" & strParam(3) & "#G" '汉字
Print #1, "#T07.96 #J39.20 #YN101/0/42///YN101#G" '字符
Print #1, "#T06.52 #J35.48 #YL0/0/00.51/74.25" '划线
Print #1, "#T07.20 #J16.00 #YB13/0P2.0M/13.46/4///12343578329-3124#G" '条码
'打印
Print #1, "#Q1#G"
Print #1, "#!P1"
Next
Close #1
On Error Resume Next
'文件字符集转换
Dim filename As String, b() As Byte, S As String
Dim ADO_Stream As Object
filename = App.Path & "\print.txt" '请修改为具体文件名
'If Dir(FileName) = "" Then Exit Sub
ReDim b(FileLen(filename))
Open filename For Binary As #1
Get #1, , b
Close #1
S = StrConv(b, vbUnicode)
Set ADO_Stream = CreateObject("ADODB.Stream")
With ADO_Stream
.Type = 2
.Mode = 3
.Charset = "utf-8"
.Open
.WriteText S
.SaveToFile filename, 2
End With
Set ADO_Stream = Nothing
FileCopy App.Path & "\print.txt", m_port
If Err.number <> 0 Then
ZebraPrint = "请确认打印机端口设置正确" ''Err.Description
Else
ZebraPrint = ""
End If
End Function好像 FileCopy 不被识别 为啥呢?
打印需要这样组织代码:
Private Sub Command1_Click()
Dim i As Integer
Open "LPT1" For Output As #1
Print #1, Chr(27); Chr(64) '清除原先的打印设置,即初始化
Print #1, Chr(28) & "@" '设置汉字状态
pnt1
Print #1, Chr(28) & "J" '设置汉字纵向打印
pnt1
Print #1, Chr(28) & "K" '设置汉字横向打印状态
Print #1, Chr(27); "3"; Chr(45) '设置换行量宽度
Print #1, Chr(27); "W"; Chr(1) '设置四倍放大
Print #1, Chr(27); "q"; Chr(3) '设置空心字
pnt1
Print #1, Chr(27); Chr(64) '清除原先的打印设置,即初始化
For i = 3 To 24 Step 3 '执行字符间隔调整
Print #1, Chr(28); "S"; Chr(0); Chr(i)
pnt1
Next
Print #1, Chr(28); "S"; Chr(0); Chr(3)
Print #1, Chr(27); "4"; '设置斜体
Print #1, Chr(27); "q"; Chr(3) '设置空心字
pnt1
'Print #1, Chr(28) & "." '切换回西文状态
Close #1
End SubPrivate Sub Form_Load()
Text1 = ""
Open "LPT1" For Output As #1
Print #1, Chr(27); Chr(64) '清除原先的打印设置,即初始化
Close
End SubPublic Sub pnt1()
Print #1, , "LPT1:" & "带有心脏的中英文打印机"
End Sub
或者使用Printer对象实施打印.
Print #1, "#!A1"
Print #1, "#IMSR65.02/55.03" '标签宽、高
Print #1, "#HV65" '浓度
Print #1, "#PR4/4/" '打印速度
Print #1, "#RX0"
Print #1, "#N13"
Print #1, "#ERN/1//0"这一段是标签内容被存到啦Print.txt中
发送到打印机出来就是 条形码。现在我要的是从这个Print.txt中
读取内容发送到打印机进行打印。Dim m_port As String
m_port = ReadIni("ZEBRA888T", "port")
这个是打印机的端口读取的配置文件。我想着用FileCopy App.Path & "\print.txt", m_port 可以调用打印机但是 没效果。
现在直接打印 可以啦
arrPrint = Split(printstr, "^")
''Open App.Path & "\print.txt" For Output As #1
Open "LPT1:" For Output As #1 ///////我把上面那一句替换成这一句,可以打数字字母,但是不能打印中文,如果我按原来的还是把它写到一个txt文件中用dos命令使用打印机却可以打印中文,打印机编码已经调为UTF-8
'循环打印
'外层循环
Dim strPrint() As String
strPrint = Split(printstr, "$")
Dim arrLen As Integer
arrLen = UBound(strPrint) - LBound(strPrint) + 1
Print #1, "A15,15,0,8,1,1,N," & Chr(34) & "合同:" & Chr(34)
Print #1, Chr(13) + Chr(10)
Print #1, "A100,20,0,4,1,1,N," & Chr(34) & arrPrint(0) & Chr(34)
Print #1, Chr(13) + Chr(10)
你能 给我说说 "A15,15,0,8,1,1,N," & Chr(34)中的每个字符代表是啥吗? 这个是斑马打印机上的,打印机还没
拿到,没法 看效果, 所以只能先问问你 我好先调调
为什么不使用Printer对象?
为何不用printer对象呢?