Оскільки Mac OS 10.2, друк обробляється системою CUPS . Хоча драйвери, як правило, знаходяться в /Library/Printers
папці, вони можуть містити файли підтримки та багато інших речей, які самі по собі не є драйверами друку, а в реальному світі немає канонічного розташування всередині папки, де зберігаються фактичні файли драйверів.
Єдиним авторитетним списком доступних драйверів друку в OS X є той, що повертається lpinfo -m
(із зазначенням хоста не потрібно для локальної машини). CUPS вказує, що драйвери можуть складатися з довільної кількості файлів, але всі вони повинні бути оголошені в центральному файлі PPD. lpinfo -m
буде аналізувати знайдені дійсні ПДД; якщо у нього немає PPD, який CUPS може розбирати, він не є дійсним драйвером друку. Зразок результату:
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
[...]
У кожному рядку вказується шлях до файлу PPD цього драйвера, а потім відображається ім'я принтера, як оголошено в PPD. Як бачите, деякі драйвери є внутрішніми для CUPS і навіть не мають файлу PPD /Library/Printers
, тому lpinfo -m
це єдиний спосіб бути впевненим у всьому, що є в системі друку.
Здається, не так багато узгодженості щодо номерів версій; Я бачив, як деякі постачальники включають версію в рядок make-and-model, яку повертає lpinfo -m
(наприклад, Xerox), але це, звичайно, не є універсальним. Однак файл PPD є просто простим текстом (необов'язково стискається). Якщо ви відкриєте PPD у текстовому редакторі, ви повинні знайти *FileVersion
рядок із списком версії драйвера.
Видалення принтера за допомогою кнопки 'мінус' у системних налаштуваннях не видаляє / видаляє драйвер, воно просто видаляє чергу, створену для відповідного принтера. (Технічно під час створення черги принтера створюється копія PPD для цього принтера, яка буде видалена при видаленні черги.) Параметр «Скинути систему друку ...» також не видалить жодних драйверів; він видалить лише всі налаштовані черги друку та скине деяку конфігурацію CUP-кодів за замовчуванням.
Видалення файлу PPD, перелічене в списку, lpinfo
ефективно видалить драйвер, оскільки він більше не завантажуватиметься системою CUPS, хоча, як пояснено вище, можуть залишитися додаткові файли підтримки. Не існує стандартного способу їх видалення, оскільки кожен драйвер може включати файли підтримки в різних місцях, але немає причини видаляти їх, якщо ви не збираєтесь перевстановити драйвер. У такому випадку оригінальний пакунок інсталятора від виробника повинен здійснювати повторну інсталяцію всіх відповідних файлів.
Я іноді бачив, як люди вручну копіюють файли PPD як засіб встановлення принтерів; не покладайтесь на це ! Для деяких драйверів потрібен лише PPD, але для інших можуть знадобитися також файли підтримки. Єдиний спосіб переконатися, що всі необхідні файли встановлені - це використовувати оригінальний пакет інсталятора.