You can remove print drivers that are not associated with a local printer or connection using the printui.exe tool
in an admin elevated command prompt type
printui /s /t2
OK, I have found the solution to this problem... the info above is correct as far as it goes, but in my case there was (a) no option to clear the print queue on two 'ghost' printers because they were disconnected and unavailable, so no option for the print queue was displayed, and (b) one was shared on the network and had a TCP/IP printer port assigned to it.
Here's how I did it, step-by-step:
1. right-click on desktop, create a new shortcut with target as 'cmd.exe'.
2. right-click on the shortcut, "Run as Administrator"
3. Run the printui tool: printui /s /t2
4. Try deleting the printers.
5. CLick Start > Run > Services.msc
6. Locate the Print Spooler service, and right-click > Properties > stop service.
7. Open My Computer and browse to c:\Windows\System32\spool\Printers
(you will need to say "oK" to get access to the folder).
8. DELETE the contents of that folder.
9. Restart the Print Spooler service.
10. Go back into the printui utillity (might need to restart it using same method as above) and try removing printers again. This time it should work. If necessary, check the "Ports" tab and remove any TCP/IP ports that are associated with the old printer.
11. Last but not least, I checked other computers on my home network to see if any of those had mapped to the old printer, and I removed those mappings, as the date of spooled documents suggested it was printed to long after it was physically removed.
A stuck print job in the queue will prevent the printer from being removed. Try runningDelete Print Jobs to remove the stuck print job.