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

這些代碼在我的項目中正常工作。如果仍然無法打印,請在調用打印功能時發佈錯誤消息或任何程序的屏幕截圖。