Since Mac OS 10.2, printing is handled by the CUPS system. While drivers are typically found in /Library/Printers
, the folder can contain support files and many other things which are not themselves print drivers, and in the real world there is no canonical location within the folder where the actual driver files are stored.
The only authoritative list of available print drivers on OS X is that returned by lpinfo -m
(specifying the host is not necessary for the local machine). CUPS specifies that drivers can consist of an arbitrary number of files, but they must all be declared in a central PPD file. lpinfo -m
will parse any valid PPDs found; if it doesn't have a PPD that CUPS can parse, then it isn't a valid print driver. A sample of the output:
MacBook-Pro:~ user$ lpinfo -m
Library/Printers/PPDs/Contents/Resources/CNPZUD450ZU.ppd.gz Canon D400-450
Library/Printers/PPDs/Contents/Resources/CNPZUD490ZU.ppd.gz Canon D460-490
Library/Printers/PPDs/Contents/Resources/CN6300.ppd.gz Canon iPF6300(CUPS)
Library/Printers/PPDs/Contents/Resources/CN6300S.ppd.gz Canon iPF6300S(CUPS)
Library/Printers/PPDs/Contents/Resources/CN6350.ppd.gz Canon iPF6350(CUPS)
Library/Printers/PPDs/Contents/Resources/CN8300.ppd.gz Canon iPF8300(CUPS)
Library/Printers/PPDs/Contents/Resources/CN8300S.ppd.gz Canon iPF8300S(CUPS)
[...]
drv:///sample.drv/okidata9.ppd Oki 9-Pin Series
drv:///sample.drv/okidat24.ppd Oki 24-Pin Series
raw Raw Queue
[...]
Each line specifies the path to that driver's PPD file, followed by the display name of the printer as declared in the PPD. As you can see, some drivers are internal to CUPS and do not even have a PPD file in /Library/Printers
, so lpinfo -m
is the only way to be certain of everything available to the printing system.
There doesn't seem to be much consistency regarding version numbers; I've seen some vendors include the version in the make-and-model string that's returned by lpinfo -m
(Xerox, for example), but it's certainly not universal. However, the PPD file is just plaintext (optionally compressed). If you open the PPD in a text editor you should find a *FileVersion
line that lists the driver version.
Deleting a printer using the 'minus' button in System Preferences does not delete/uninstall the driver, it just deletes the queue that has been created for the printer in question. (Technically, when you create a printer queue, a copy of the PPD is created for that printer, which will be deleted when deleting the queue.) The 'Reset printing system...' option will also not remove any drivers; it will only delete all configured print queues and reset some CUPs configuration to defaults.
Deleting a PPD file listed by lpinfo
will effectively delete the driver, as it will no longer be loaded by the CUPS system, though as explained above there may be additional support files left behind. There is no standard way to remove these because each driver can include support files in different places, but there is no cause to delete them unless you are intending to reinstall the driver. In that case, the original installer package from the manufacturer should handle re-installation of all relevant files.
I have sometimes seen people manually copying PPD files as a means of installing printers; do not rely on this! Some drivers require only a PPD but others may need support files as well. The only way to be sure all necessary files are installed is to use the original installer package.