Я не уверен на 100%, что это сработает, поэтому попробуйте сначала:
'usage
For Each prn As String In PrinterSettings.InstalledPrinters
Debug.WriteLine(String.Format("Is printer {0} online? {1}", prn, CheckPrinter(prn).ToString))
Next
'function to test printer status
Private Function CheckPrinter(ByVal printerName As String) As Boolean
Try
Dim printDocument As PrintDocument = New PrintDocument
printDocument.PrinterSettings.PrinterName = printerName
Return printDocument.PrinterSettings.IsValid
Catch ex As System.Exception
Return False
End Try
End Function