2010-11-12 88 views
4

有什么简单用vb.net打印的方法?用vb.net打印

具体来说,用控制台。似乎与表单应用程序一起工作的东西不能与控制台一起工作。

+0

什么是你想打印? TextArea中的文本?窗户本身? – 2010-11-12 19:01:59

+0

我想打印用户在控制台中输入的文本字符串。 – 2010-11-12 19:02:50

回答

5

http://visualbasic.about.com/od/usingvbnet/a/printvb2005.htm

Public Class myPrinter 
    Friend TextToBePrinted As String 
    Public Sub prt(ByVal text As String) 
     TextToBePrinted = text 
     Dim prn As New Printing.PrintDocument 
     Using (prn) 
     prn.PrinterSettings.PrinterName _ 
      = "PrinterName" 
     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 

叫解禁如下:

Dim printer As New myPrinter 
printer.prt "Hello World" 
+1

你真的尝试过吗? “打印”没有为我定义。 – 2010-11-12 19:06:33

+0

那是因为我正在使用控制台应用程序而不是表单应用程序。感谢Oded当我引用system.drawing时,部分问题就消失了。然后改变“打印”。到“Drawing.Printing”。 – 2010-11-12 19:20:41

+0

它的星期一,现在起作用。需要一个'Import Printing.Drawing'语句(以及引用system.drawing)。一个小小的帮助是使用'rinting.PrinterSettings.InstalledPrinters.Item(0)'来找到你想要的打印机,而不是在''PrinterName''中输入某些东西。 – 2010-11-15 14:16:07

-2

我能想到的最简单的方法是使用诸如CrystalReports之类的打印引擎。

+1

在这种情况下,使用其他工具不算简单。但是,感谢这个主意!理想的简单意味着'打印(“文本”)' – 2010-11-12 19:23:10

1

看那PrintDocument类。

定义从Windows窗体应用程序打印时将输出发送到打印机的可重复使用的对象。

+0

有什么这样的_console_应用? – 2010-11-12 19:11:54

+1

@Oak - 你无法在控制台应用程序中使用System.Drawing.Printing命名空间的原因?只需在你的项目中添加一个参考,你应该很好去。 – Oded 2010-11-12 19:13:51

+0

是的,我的新vb.net。谢谢! – 2010-11-12 19:18:32

0

好这个职位是旧的但是从我这个问题的理解,你想打印一个字符串到控制台,换句话说:

System.Console.Write("My magnificent string !")