Imports System.Runtime.InteropServices Public Class RawPrinter Public Structure DOCINFO Public DocumentName As String Public OutputFile As String Public DataType As String End Structure _ Private Shared Function OpenPrinter(ByVal pPrinterName As String, ByRef phPrinter As IntPtr, ByVal pDefault As Integer) As Long End Function _ Private Shared Function StartDocPrinter(ByVal hPrinter As IntPtr, ByVal Level As Integer, ByRef pDocInfo As DOCINFO) As Long End Function _ Private Shared Function StartPagePrinter(ByVal hPrinter As IntPtr) As Long End Function _ Private Shared Function WritePrinter(ByVal hPrinter As IntPtr, ByVal data As String, ByVal buf As Integer, ByRef pcWritten As Integer) As Long End Function _ Private Shared Function EndPagePrinter(ByVal hPrinter As IntPtr) As Long End Function _ Private Shared Function EndDocPrinter(ByVal hPrinter As IntPtr) As Long End Function _ Private Shared Function ClosePrinter(ByVal hPrinter As IntPtr) As Long End Function Public Shared Sub SendToPrinter(ByVal printerJobName As String, ByVal rawStringToSendToThePrinter As String, ByVal printerNameAsDescribedByPrintManager As String) Dim handleForTheOpenPrinter = New IntPtr() Dim documentInformation = New DOCINFO() Dim printerBytesWritten = 0 documentInformation.DocumentName = printerJobName documentInformation.DataType = vbNullString documentInformation.OutputFile = vbNullString OpenPrinter(printerNameAsDescribedByPrintManager, handleForTheOpenPrinter, 0) StartDocPrinter(handleForTheOpenPrinter, 1, documentInformation) StartPagePrinter(handleForTheOpenPrinter) WritePrinter(handleForTheOpenPrinter, rawStringToSendToThePrinter, rawStringToSendToThePrinter.Length, printerBytesWritten) EndPagePrinter(handleForTheOpenPrinter) EndDocPrinter(handleForTheOpenPrinter) ClosePrinter(handleForTheOpenPrinter) End Sub End Class