无人值守连续打印

fishappen 2010-08-16 02:29:56
以前用vb6的时候 只要
Printer.CurrentX = CurX
Printer.CurrentY = CurY
Printer.Print Trim(PrintStr)

嵌在循环里面 就可以实现 无人值守 从数据库自动读数据连续打印票据 不需打印预览 不需 确定 不需人工干预。
在 Visual Basic 2005 中,Visual Basic 6.0 Printer 对象被 PrintDocument 组件替换 感觉使用起来不是很方便,还是我没看懂呢?求代码 谢谢
...全文
219 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
想飞的狼 2010-09-05
  • 打赏
  • 举报
回复
可以直接打印
SeeSunSet 2010-09-05
  • 打赏
  • 举报
回复
以文件方式打开打印机端口,直接写入打印指令即可
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
  • 打赏
  • 举报
回复
怎么程序员也时髦喜新厌旧么?

没有足够有巨大价值的理由,干嘛要丢掉旧程序?
  • 打赏
  • 举报
回复
你可以继续用你的vb6,编译为ocx控件,在vb.net中引用啊!
兔子-顾问 2010-09-05
  • 打赏
  • 举报
回复
VB.Net打印示例
http://www.lob.cn/sl/device/1859.shtml
lmhcs 2010-09-04
  • 打赏
  • 举报
回复
呵呵,楼主刚开始学习vb。net ,问的问题好基础哦。建议看看一些书。我给一段实例代码。你参考一下
建立一个程序,放两个按钮,一个PrintDocument1,一个PrintPreviewDialog1。见代码如下
    '调用打印
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PrintDocument1.Print()
End Sub
'打印
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim str = "该程序演示打印功能"
Dim g As Graphics = e.Graphics '这是可以用来画图打印文字的对象
Dim f As Font = New Font("宋体", 16)
Dim CurX, CurY As Integer
CurX = 40
CurY = 40
g.DrawString(str, f, Brushes.Black, CurX, CurY)

End Sub
'预览
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
PrintPreviewDialog1.Document = PrintDocument1
PrintPreviewDialog1.ShowDialog()
End Sub
htpower 2010-09-03
  • 打赏
  • 举报
回复
水晶报表实现挺快的~
fishappen 2010-08-31
  • 打赏
  • 举报
回复
我希望使用 PrintDocument 组件 一样实现 上述打印功能 求代码
allanli 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fishappen 的回复:]

我希望使用 PrintDocument 组件 一样实现 上述打印功能 求代码
[/Quote]

那你就死条心吧
就像说我就是要用部奥拓改装成跑车开到350公里,不是说不可能,而是这样做有必要吗
费时费力不符合成本效益,呵呵
allanli 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 fishappen 的回复:]
以前用vb6的时候 只要
Printer.CurrentX = CurX
Printer.CurrentY = CurY
Printer.Print Trim(PrintStr)

嵌在循环里面 就可以实现 无人值守 从数据库自动读数据连续打印票据 不需打印预览 不需 确定 不需人工干预。
在 Visual Basic 2005 中,Visual Basic 6……
[/Quote]

我估计在.NET下比较难实现VB6 Printer的功能,看过别人用API实现过
如果不行的话可以考虑用VB6做一个COM控件给VB.NET使用
只在此山中 2010-08-17
  • 打赏
  • 举报
回复
.net中不用预览也可以打印。

16,554

社区成员

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

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