求VB编写的EPSON打印机打印票据的方法

x80032901 2009-08-20 11:47:39
求VB编写的EPSON打印机打印票据的方法,当票据打印完后,停止走纸,可以正好撕下票据!希望有代码及说明!还请各位兄弟们帮帮忙!
...全文
299 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
x80032901 2009-08-22
  • 打赏
  • 举报
回复
谢谢各位!找到了!只设置服务器属性不行,打印机首选项也要设置,我没有设置这个,谢谢各位!
x80032901 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 mybelta2 的回复:]
用不着在VB里控制,你先添加你票据的自定义纸张(如24X14),然后在打印机属性里选择你的自定义纸张类型就可以了,我们公司也是这样的EPSON 1600KIII的打印机,不管什么打印机都是一样的。
[/Quote]
我用了一下您说的方式,打印机设置成默认打印机(其实我就这一个打印机),纸张也在服务器属性里定义了,打印机里也设置成自定义的了,可走的纸张还是A4大小,好像没有识别我自定义的大小!能具体说一下你那里是怎么调用的吗?谢谢!
x80032901 2009-08-22
  • 打赏
  • 举报
回复
12楼,我把您说的printer.PaperSize=VbPRPSUser 加进去了,也自定义了纸张,可是提示无效属性值!我写的代码如下:
Private Sub Command1_Click()
Printer.PaperSize = vbPRPSUser
Printer.CurrentX = 100
Printer.CurrentY = 100
Printer.Print Text1.Text
Printer.EndDoc
End Sub

Private Sub Form_Load()
Text1.Text = ""
End Sub

如果不加您说的 Printer.PaperSize = vbPRPSUser 这一句,走纸还是A4满幅!
mybelta2 2009-08-22
  • 打赏
  • 举报
回复
用不着在VB里控制,你先添加你票据的自定义纸张(如24X14),然后在打印机属性里选择你的自定义纸张类型就可以了,我们公司也是这样的EPSON 1600KIII的打印机,不管什么打印机都是一样的。
chinaboyzyq 2009-08-22
  • 打赏
  • 举报
回复
在打印机属性里自定义纸张,然后在VB里调用.
printer.PaperSize=VbPRPSUser'用户定义纸张
chinaboyzyq 2009-08-22
  • 打赏
  • 举报
回复
在打印机里自定义纸张,然后在VB里调用.
printer.PaperSize=VbPRPSUser'用户定义纸张
x80032901 2009-08-22
  • 打赏
  • 举报
回复
10楼的大哥,按照您说的方法试了一下,打印内容是没有问题,但是纸停不住,打印机还是照常走完A4纸幅才停止!我用的是EPSON LQ-300K+Ⅱ针式打印机!
6楼能对停止的代码说明一下吗?谢谢!
饮水需思源 2009-08-22
  • 打赏
  • 举报
回复
'用printer对象写打印语句即可
printer.currentx=1000 '打印x坐标
pinter.currenty=1000 '打印y坐标
printer.print "打印内容"
printer.enddoc
x80032901 2009-08-22
  • 打赏
  • 举报
回复
“Close #1”是用来停止走纸吗?

x80032901 2009-08-22
  • 打赏
  • 举报
回复
哦!不好意思!刚才看漏了6楼的代码!对不起啊!
-------------------------------------------------
Public Sub pnt1()
Print #1, , "LPT1:" & "带有心脏的中英文打印机"
End Sub
-----------------------------------------------------
刚才没看到这个!这是打印的内容吧!能对:[Print #1, , "LPT1:" & "带有心脏的中英文打印机"]这一句的格式作个说明吗?谢谢!
x80032901 2009-08-22
  • 打赏
  • 举报
回复
我所指的打印机就是市面上变通的针打,LTP口的,比如像LQ300,1600等!请问像6楼所示的,打印中文是否可行!如果是按行打印,纸走到预想的地方,用什么来让它停止走纸呢!6楼代码中的“pnt1”是起什么作用呢!是打印机内部命令吗?
zdingyun 2009-08-21
  • 打赏
  • 举报
回复
LZ:试下以下代码,但你的打印机通信线必须是通过并口与计算机连接的.
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 Sub

Private Sub Form_Load()
Text1 = ""
Open "LPT1" For Output As #1
Print #1, Chr(27); Chr(64) '清除原先的打印设置,即初始化
Close
End Sub

Public Sub pnt1()
Print #1, , "LPT1:" & "带有心脏的中英文打印机"
End Sub

Tiger_Zhao 2009-08-21
  • 打赏
  • 举报
回复
具体看打印机的接口。

通常可以撕票据的打印机是按照行打印的方式输出的,只要打印完内容后,再输出一定数量的空行向前走纸。
具体数量你测试一下,调整到正好可以撕下票据。
yangbo_cuit 2009-08-21
  • 打赏
  • 举报
回复
On Error GoTo Myprint
Printer.Print "你需要打印的内容"
Printer.EndDoc

Myprint:
MsgBox "打印机错误!", vbOKOnly, "提示"
孤独剑_LPZ 2009-08-21
  • 打赏
  • 举报
回复
打印机有多种,是指热敏打印机吗?如果是,可以在打印机属性里面设置.
ttsffgg 2009-08-21
  • 打赏
  • 举报
回复
我正在使用vb配合爱普生1600kiiih打印票据
至于走纸的设定,我是在打印机属性里面设置的,而不是在vb里面
现在还是人类 2009-08-20
  • 打赏
  • 举报
回复
你是说什么型号的?
看你的说明好像是指那种很小的针式打印机,如果是这种打印机,
通常是直接面向打印机控制板的,有的是采用串口通讯,有的是
采用并口,控制板的命令也各有不同,看生产厂家的。你可以向
生产厂家要通讯协议的。

7,759

社区成员

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

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