【问题标题】:How to print a text from textbox using Vb.net?如何使用 Vb.net 从文本框中打印文本?
【发布时间】:2016-11-09 03:54:11
【问题描述】:

交易完成后,我希望文本框中的所有文本都能自动打印。 但是,我的代码不起作用。请有人帮我找到使用任何打印机打印文本的解决方案或任何其他方式

输入:TextBox4.Text = "asdf" 输出:asdf(在打印页面上)

代码

RequiredFieldsGovPriv()    
Printer.Print(TextBox3.Text)
Printer.EndDoc

【问题讨论】:

  • 使用此链接 (stackoverflow.com/questions/4168117/printing-with-vb-net)。将该类添加到您的项目中,然后在您想打印文本时调用 prt()。对于打印机名称,您可以使用PrinterSettings.InstalledPrinters.Item(0)作为计算机的默认打印机,在这种情况下您必须导入System.Drawing.Printing
  • 它不工作并且发生错误“访问打印机'PrinterName'的设置无效。”@HaPhan
  • 因为您的计算机没有任何名为“PrinterName”的打印机。您必须将其替换为“设备和打印机”窗格中显示的打印机名称。或者按照我的建议将其替换为 InstalledPrinters 属性,在这种情况下,它将适用于任何具有默认打印机的计算机。
  • 有什么方法可以打印我在 textbox.text 中输入的内容? @HaPhan
  • 只需调用 prt(textbox.text) 就可以了......

标签: vb.net


【解决方案1】:

由于评论的限制,我无法发布代码,所以这里是调用打印机的整个代码:

Public Class myPrinter
    Friend TextToBePrinted As String
    Public Sub print(ByVal text As String)
        TextToBePrinted = text
        Dim prn As New Printing.PrintDocument
        Using (prn)
            prn.PrinterSettings.PrinterName = PrinterSettings.InstalledPrinters.Item(0)
            AddHandler prn.PrintPage, AddressOf Me.PrintPageHandler
            prn.Print()
            RemoveHandler prn.PrintPage, AddressOf Me.PrintPageHandler
        End Using
    End Sub

    Private Sub PrintPageHandler(ByVal sender As Object, ByVal args As Printing.PrintPageEventArgs)
        Dim myFont As New Font("Microsoft San Serif", 10)
        args.Graphics.DrawString(TextToBePrinted, New Font(myFont, FontStyle.Regular), Brushes.Black, 50, 50)
    End Sub
End Class

然后,...

'working code 
RequiredFieldsGovPriv() 'your sub
Dim mprinter As New myPrinter
mprinter.print(txttextbox.Text)
'Continue to work...

这些代码在我的项目中运行良好。如果您仍然无法打印,请发布您的错误消息或调用打印函数时程序执行的任何操作的屏幕截图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多