VB如何控制打印机的打印问题。(以EPSON打印机为例)

cmt123 2002-05-08 10:58:31
我想用VB控制打印机打印票据,但必需控制它进纸多少,出纸多少,如何按固定的票据格式打印,各位高手请帮忙!
...全文
67 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxyclc 2002-05-08
  • 打赏
  • 举报
回复
我用的是STAR—5400代码

Call StartPagePrinter(hPrinter)


i = MsgBox("退纸吗?", vbYesNo + vbDefaultButton1, "提示信息")

If i = vbYes Then
For k = 1 To 2
printdata$ = Chr$(27) & Chr$(118)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
Next k
End If

printdata$ = Chr$(27) & Chr$(102)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

'设24*24点阵字库
printdata$ = Chr$(27) & Chr$(117) & Chr$(3)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
'设28*28点阵字库
printdata$ = Chr$(28) & Chr$(101) & Chr$(28) & Chr$(28)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

For i = 1 To zpage
printset.MoveFirst
'设定行距
r = printset.rowzb
printdata$ = Chr$(27) & Chr$(65) & Chr$(r)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
'走一行
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & x_formatx(dwmc, 20)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & Year(Date)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & Month(Date)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & Day(Date)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

'走一行
r = printset.rowzb
printdata$ = Chr$(27) & Chr$(65) & Chr$(r)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

For k = 1 To 6

a(k) = printset.colzb
printset.MoveNext
Next k

For j = 0 To 2
r = 13
printdata$ = Chr$(27) & Chr$(65) & Chr$(r)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
If j <= pagepzs(i) Then
printdata$ = Chr$(27) & "q0" & Space(a(1)) & x_formatx(pzmc(i, j), 14)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

printdata$ = Chr$(27) & "q0" & Space(a(2)) & x_formatx(gg(i, j), 3)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

printdata$ = Chr$(27) & "q0" & Space(a(3)) & "条"
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

printdata$ = Chr$(27) & "q0" & Space(a(4)) & x_formatsl(sl(i, j), 7)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

printdata$ = Chr$(27) & "q0" & Space(a(5)) & x_formats(dj(i, j), 6)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

printdata$ = Chr$(27) & "q0" & Space(a(6)) & x_formats(je(i, j), 11)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
Else
printdata$ = Chr$(27) & "q0" & Space(a(6))
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
End If
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
Next j

r = printset.rowzb '合计
printdata$ = Chr$(27) & Chr$(65) & Chr$(r)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & x_formatsl(slhj(i), 7)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

r = printset.rowzb '中文合计
printdata$ = Chr$(27) & Chr$(65) & Chr$(r)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & x_formatx(zwhj(i), 36)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & Format$(jehj(i), "#######0.00")
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

r = printset.rowzb '开票人
printdata$ = Chr$(27) & Chr$(65) & Chr$(r)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)

c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & x_formatx(kpr, 8)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

zje = 0
zsl = 0
For k = 1 To zpage
zje = zje + jehj(k)
zsl = zsl + slhj(k)
Next k
If i = zpage Then
If shflag = "是" Then
bj = "(*)" + Trim(Format$(zje, "#########0.00")) + " 条:" + Trim(Str(zsl))
Else
bj = Trim(Format$(zje, "#########0.00")) + " 条:" + Trim(Str(zsl))
End If
End If
c = printset.colzb
printdata$ = Chr$(27) & "q0" & Space(c) & bj
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext

r = printset.rowzb '页间隔
printdata$ = Chr$(27) & Chr$(65) & Chr$(r)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printset.MoveNext
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
Next i
r = printset.rowzb '出纸
For k = 1 To 2
printdata$ = Chr$(27) & Chr$(65) & Chr$(r)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
printdata$ = Chr$(10)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
Next k

printdata$ = Chr$(27) & Chr$(102)
Call WritePrinter(hPrinter, ByVal printdata$, LenB(StrConv(printdata$, vbFromUnicode)), 0)
Call EndPagePrinter(hPrinter)
Call EndDocPrinter(hPrinter)
Call ClosePrinter(hPrinter)

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧