Bila menggunakan Crystal Report, pencetakan langsung (tanpa membuka Crystal Report Viewer) dapat dilakukan dengan "ReportDocument" object. Misalnya digunakan "Report1.rpt":
Dim crReportDocument As New ReportDocument
crReportDocument.Load("Report1.rpt")
crReportDocument.PrintOptions.PaperSource = PaperSource.Manual
crReportDocument.PrintToPrinter(1, False, 0, 0)
Jangan lupa menambahkan:
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Biasanya printer dot matrix menggunakan tractor, maka dapat di set:
crReportDocument.PrintOptions.PaperSource = PaperSource.Tractor
Bila tanpa/tidak menggunakan Crystal Report, dapat dilakukan pencetakan langsung menggunakan "PrintDocument" object (System.Drawing.Printing.PrintDoument).
Contoh:
Public Class MyPrinter
Friend _textToPrint As String
Public Sub Print(ByVal textToPrint As String, ByVal printerName As String)
_textToPrint = textToPrint
Dim printDocument As New Printing.PrintDocument
Using (printDocument)
printDocument.PrinterSettings.PrinterName = printerName
AddHandler printDocument.PrintPage, AddressOf Me.PrintPageHandler
printDocument.Print()
RemoveHandler printDocument.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(_textToPrint, New Font(myFont, FontStyle.Regular), Brushes.Black, 50, 50)
End Sub
End Class
Untuk menggunakan:
misalnya digunakan printer LX-300 (sesuaikan nama printer driver yg ada di Setting Printer and Faxes)
Dim myPrinter = New MyPrinter
myPrinter.Print("Hello World", "Epson LX-300")
Happy Coding... :)