当前位置:编程学习 > C#/ASP.NET >>

无人值守连续打印

以前用vb6的时候 只要
    Printer.CurrentX = CurX
    Printer.CurrentY = CurY
    Printer.Print Trim(PrintStr)

嵌在循环里面 就可以实现 无人值守 从数据库自动读数据连续打印票据 不需打印预览 不需 确定 不需人工干预。
在 Visual Basic 2005 中,Visual Basic 6.0 Printer 对象被 PrintDocument 组件替换 感觉使用起来不是很方便,还是我没看懂呢?求代码 谢谢 --------------------编程问答-------------------- .net中不用预览也可以打印。 --------------------编程问答--------------------
引用楼主 fishappen 的回复:
以前用vb6的时候 只要
    Printer.CurrentX = CurX
    Printer.CurrentY = CurY
    Printer.Print Trim(PrintStr)

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


我估计在.NET下比较难实现VB6 Printer的功能,看过别人用API实现过
如果不行的话可以考虑用VB6做一个COM控件给VB.NET使用 --------------------编程问答-------------------- 我希望使用 PrintDocument 组件 一样实现 上述打印功能 求代码 --------------------编程问答--------------------
引用 3 楼 fishappen 的回复:
我希望使用 PrintDocument 组件 一样实现 上述打印功能 求代码


那你就死条心吧
就像说我就是要用部奥拓改装成跑车开到350公里,不是说不可能,而是这样做有必要吗
费时费力不符合成本效益,呵呵 --------------------编程问答-------------------- 水晶报表实现挺快的~ --------------------编程问答--------------------    呵呵,楼主刚开始学习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
--------------------编程问答-------------------- 可以直接打印 --------------------编程问答-------------------- --------------------编程问答-------------------- VB.Net打印示例
http://www.lob.cn/sl/device/1859.shtml --------------------编程问答-------------------- 你可以继续用你的vb6,编译为ocx控件,在vb.net中引用啊! --------------------编程问答-------------------- 怎么程序员也时髦喜新厌旧么?

没有足够有巨大价值的理由,干嘛要丢掉旧程序? --------------------编程问答-------------------- 以文件方式打开打印机端口,直接写入打印指令即可
 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
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,