2016-11-09 75 views
-2

交易完成后,我希望所有来自文本框的文本自动打印。 但是,我的代码不起作用。请人帮我找到一个解决方案或任何其他方式使用任何打印机如何使用Vb.net从文本框打印文本?

输入打印文本:TextBox4.Text =“ASDF” 输出:航空自卫队(打印页上)

代码

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

使用此链接(http://stackoverflow.com/questions/4168117/printing-with-vb-net)。将该类添加到项目中,然后在打印文本时调用prt()。 对于打印机名称,您可以使用'PrinterSettings.InstalledPrinters.Item(0)'作为计算机的默认打印机,在这种情况下,您将必须导入'System.Drawing.Printing' – HaPhan

+0

它不工作并出现错误“访问打印机'PrinterName'的设置无效。”@ HaPhan – Mikelemuel

+0

,因为您的计算机没有任何名为“PrinterName”的打印机。您必须将其替换为“设备和打印机”窗格中显示的打印机名称。正如我所建议的那样,将其替换为InstalledPrinters属性,在这种情况下,它可以与任何具有默认打印机的计算机一起使用。 – HaPhan

回答

0

带有注释的限制,我不能发布的代码,所以这里是整个代码来调用打印机:

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... 

这些代码在我的项目中正常工作。如果仍然无法打印,请在调用打印功能时发布错误消息或任何程序的屏幕截图。