Как написать драйвер виртуального принтера для Mac OSX
Мне нужно написать "драйвер виртуального принтера" для OSX, так что, когда пользователь нажимает Command + P, чтобы открыть диалоговое окно "Печать", он видит мой виртуальный принтер... который будет использоваться для создания файлов разных типов, вместо физической печати на бумаге.
Я новичок в этом вопросе, я немного оглянулся, но ничего не нашел. У вас есть ссылка или ссылка на документацию, которая охватывает эту тему?
Ответы
Ответ 1
Вместо того, чтобы писать драйвер, рассмотрите возможность использования служб PDF в диалоговом окне печати OS X. В системном каталоге /Library/PDF Services
или user ~/Library/PDF Services
вы можете поместить AppleScripts, рабочие процессы Automator или символические ссылки/псевдонимы в приложения или папки. Эти элементы появятся во всплывающем меню PDF в диалоговом окне печати, и если пользователь выберет элемент, PDF файл будет помещен в папку или передан в приложение, script или рабочий процесс.
Ответ 2
Он называется VipRiser - расширяемый виртуальный принтер PDF
Уже есть драйвер, который делает это. VipRiser устанавливает принтер, который сохраняется в файле. Я использую его для "распечатывания" на музыкальной ноте, которую я покупаю в Интернете. Существующие опции "Сохранить в PDF" внизу диалогового окна принтера не будут работать, потому что поставщик музыки отключил эту функцию, и вы должны печатать на принтере.
Для самой широкой и простой поддержки печати на виртуальном принтере я использую VipRiser вместо использования Услуги PDF. Службы PDF работают в некоторых случаях, но многие сайты препятствуют использованию служб PDF.
Ответ 3
Если драйвер принтера абсолютно необходим, а службы PDF не подходят.
Решение состоит в том, чтобы написать свой собственный драйвер CUPS - и Mac OS, и Linux используют CUPS для печати, поэтому решение может работать для обеих систем.
Документация для CUPS содержит инструкцию по написанию драйвера (https://www.cups.org/doc/postscript-driver.html), которая обычно состоит из создания:
Есть хороший учебник о том, как написать один на Python: https://behind.pretix.eu/2018/01/20/cups-driver/
и предоставляет пример открытого исходного кода для управления принтером FGL: https://github.com/pretix/cups-fgl-printers, который можно адаптировать к вашим потребностям.