200分求VB.NET或者C#操作串口热敏打印机例子

fairy4 2009-07-03 09:18:45
由于本人从来没有接触过串口打印机,不知道怎么动手,?那位大哥如果有这方面的资料或者例子,麻烦帮帮忙!
例子可发送至phoenix4197@163.com,多谢了
只要能实现简单操作,即刻结贴,分不够再加。
...全文
1301 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeeSunSet 2010-11-03
  • 打赏
  • 举报
回复
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const OPEN_EXISTING = 3
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" _
(ByVal lpFileName As String, ByVal dwDesiredAccess As Integer, ByVal dwShareMode As Integer, ByVal lpSecurityAttributes As Integer, ByVal dwCreationDisposition As Integer, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer) As IntPtr

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim iHandle As IntPtr
iHandle = CreateFile("LPT1", GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0)
If (iHandle.ToInt32 = -1) Then
MsgBox("没有连接打印机或者打印机端口不是LPT1")
Exit Sub
Else
If i = 0 Then MsgBox("打印机连接成功!")

Dim fs As New FileStream(iHandle, FileAccess.ReadWrite)
Dim sr As New StreamReader(fs) '读数据
Dim sw As New StreamWriter(fs, System.Text.Encoding.Default) '写数据

sw.WriteLine()


End If
sw.Close()
End If
Next
End If
End Sub



End Function
特别 2009-11-29
  • 打赏
  • 举报
回复
楼主,如果是VB的话,可以直接用OPEN方法来操作串口,打印行不行不知道
没有打印机不好测试
下面是VB6的代码,你可以参考一下

Public Sub Test()

Open "COM1:9600,N,8,1" For Output As #1
Write #1, "张三"
Close #1

End Sub

如果要换成C#或者VB.NET,可以用System.IO.FileStream操作
fairy4 2009-07-14
  • 打赏
  • 举报
回复
打漢字沒問題,我已經測試過了,我只是對一些命令不太熟悉,不清楚怎麼表示,我找到一個串口打印機的可執行文件,監聽它發送的命令,現在也基本上完成了打印的基本操作。是通過AxMSComm控件Output發送的。
也叫供應商提供了一份資料,不過它也是一個小的組裝代理商,資料給的也好像不是特別正確(型號好像給錯了)
哎,算了,再嘗試下,修改下,應該可以交差了
zdingyun 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 fairy4 的回复:]
是串口,不是並口,並口的簡單多了,什么也不用管
[/Quote]
LZ:如果是VB6,你完全可进行串口通信来实施打印,注意每行命令最后应该有换行符.
VB.NET我没有试过串口打印机是否能正确打印汉字.VB6下应该每问题.
fairy4 2009-07-13
  • 打赏
  • 举报
回复
是串口,不是並口,並口的簡單多了,什么也不用管
zdingyun 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 zdingyun 的回复:]
引用 27 楼 fairy4 的回复:
是超市的那種打印小票的打印機,沒有驅動的,在WINDOWS下甚至連打印機也找不到的,只能發送命令一行行的打


引用 28 楼 fairy4 的回复:
難道就沒人做過串口熱敏打印機的項目或者例子嗎?


建议LZ将打印机的通信线使用正规并口连接,使用命令行(OPEN LPT1打印),它不支持USB方式.
[/Quote]
汗!
使用命令行(OPEN LPT1打印),仍须经并口传输.
zdingyun 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 fairy4 的回复:]
是超市的那種打印小票的打印機,沒有驅動的,在WINDOWS下甚至連打印機也找不到的,只能發送命令一行行的打
[/Quote]

[Quote=引用 28 楼 fairy4 的回复:]
難道就沒人做過串口熱敏打印機的項目或者例子嗎?
[/Quote]

建议LZ将打印机的通信线使用正规并口连接,使用命令行(OPEN LPT1打印),它不支持USB方式.
fairy4 2009-07-13
  • 打赏
  • 举报
回复
難道就沒人做過串口熱敏打印機的項目或者例子嗎?
fairy4 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 sunsatan 的回复:]
不要试图直接发打印机指令操作热敏打印机,在win下正确安装打印机驱动。然后用水晶报表打印就可以。不然一旦更换其他型号的打印机代码就有可能白写了

。。。
还有同样配置好像.net2.0 跟 .net1.1 的运行效率差距不大。不建议楼主换2003
[/Quote]
是超市的那種打印小票的打印機,沒有驅動的,在WINDOWS下甚至連打印機也找不到的,只能發送命令一行行的打

另外,雖然說程序在.net2.0 跟 .net1.1 的运行效率差距不大但是也確實有,對一些大型電的程序來說就比較明顯了,而且對於設計來說,2005真的不是一個好的版本,控件稍微多點,刷新和閃動就很可怕,同一台電腦,在2003下我放置100多個透明控件,沒什麽大的問題。在2005下,放置幾十個,我就無法對控件去定位了,一拖動,就閃爍的相當厲害。當然,找可能和我電腦的配置有關。但是考慮程序框架的安裝等問題,我還是寧可用2003
sunsatan 2009-07-11
  • 打赏
  • 举报
回复
还有同样配置好像.net2.0 跟 .net1.1 的运行效率差距不大。不建议楼主换2003
sunsatan 2009-07-11
  • 打赏
  • 举报
回复
不要试图直接发打印机指令操作热敏打印机,在win下正确安装打印机驱动。然后用水晶报表打印就可以。不然一旦更换其他型号的打印机代码就有可能白写了
fairy4 2009-07-08
  • 打赏
  • 举报
回复
呵呵,沒法子,不能換2005的啊,我是從2005下轉2003的,因為我要面對的電腦性能都不高,用2005跑的夠嗆
zdingyun 2009-07-08
  • 打赏
  • 举报
回复
LZ:VB.NET2003操作串口同VB6一样使用AXMSCOMM控件,操作串口打印打印机,你通过AxMSComm控件Output属性直接赋ASCII字符发送就应该可以了.
xudongdong_1990 2009-07-07
  • 打赏
  • 举报
回复
http://hi.baidu.com/xsharkx/blog/item/3bb787c335a4c95db219a844.html
xudongdong1990 2009-07-07
  • 打赏
  • 举报
回复
帮顶
yagebu1983 2009-07-07
  • 打赏
  • 举报
回复
对打印机开发,应该熟悉打印机的接口文档。。。
boy2010 2009-07-07
  • 打赏
  • 举报
回复
zhichi ````
LQknife 2009-07-07
  • 打赏
  • 举报
回复
能换2005就换吧
oo渣渣oo 2009-07-07
  • 打赏
  • 举报
回复
另外,2003的串口编程真的很烦,我也是用回MSCOMM32.OCX的.建议楼主有机会的话换2005吧.....我也是才换了没几天.呵呵
oo渣渣oo 2009-07-07
  • 打赏
  • 举报
回复
楼主,你的意思是操作串口没有问题,只是不知道怎么给打印机发指令?

这个,每种打印机的厂家定义都不一样的,你应该去向你的打印机厂家索要相应的控制码资料,然后根据资料发送对应的指令和数据就可以打印出来了.
加载更多回复(15)

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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