Für Berichte verwende ich die RDLC-Steuerung.
Für alles andere verwende ich die inhärenten Druckobjekte in .NET.
Bearbeiten Die inhärenten Druckobjekte befinden sich alle im System.Drawing.Printing-Namespace. Wenn Sie den PrintDialog oder den PrintPreviewDialog in einer Anwendung von WinForms (oder WPF) verwenden, ändern Sie diese Kontrolle an diesen Objekten.
Das grundlegende Konzept ist, dass Sie zum Drucker zeichnen. Die einfachste Form ist das:
Sub MyMethod()
Dim x as New PrintDocument
AddHandler x.PrintPage, AddressOf printDoc_PrintPage
x.Print
End Sub
Sub printDoc_PrintPage(sender as Object, e as PrintPageEventArgs)
Dim textToPrint as String= ".NET Printing is easy"
dim printFont as new Font("Courier New", 12)
dim leftMargin as int= e.MarginBounds.Left
dim topMargin as int = e.MarginBounds.Top
e.Graphics.DrawString(textToPrint, printFont, Brushes.Black, leftMargin, topMargin)
End Sub
Was hier passiert, ist, dass, wenn mein Objekt (x) den Druckbefehl gesendet wird, das „PRINT PAGE“ Ereignis auslöst (was entworfen wird 1 Seite auf einmal drucken). Dieses Ereignis verwendet dann das Graphics-Attribut von PrintPageEventArgs, um die relevante Zeichenfolge direkt in den Druckerspooler zu zeichnen.
Here's one tutorial, und eine schnelle Google-Suche nach ".NET Drucken Tutorial" gibt ein bisschen über 200K Ergebnisse zurück.
Wie viel haben Sie bereits am System.Drawing.Printing Namespace geschaut? –
Ich habe in ein paar Wegen des Druckens geschaut, aber bevor ich mich eingehender damit beschäftige, würde ich gerne mehr wissen - es ist eine große Zeitverschwendung, den falschen Weg zu wählen, mehr darüber zu erfahren. – Sam