So I've tried various things so far. I'm not quite sure whether I should be looking for the 'printer to be offline' or for the queue to be offline.
Using the below I am able to return the default queue and all of the various properties of the queue. But when I unplug the usb printer (or set it to 'use offline' ) I never see the .IsOffline property change.
Dim myDefaultQueue As PrintQueue = Nothing
Dim localPrintServer As New LocalPrintServer()
' Retrieving collection of local printer on user machine
myDefaultQueue = localPrintServer.GetDefaultPrintQueue
myDefaultQueue.Refresh()
If myDefaultQueue.IsOffline Then
MsgBox("Your printer is offline")
End If
The example is what I've been working off of