Почему MacOS работает быстрее, чем Chrome или lpr?

Я заметил, что печать одного и того же файла pdf на тот же принтер не всегда занимает такое же количество времени:

  • Печать из диалогового окна печати по умолчанию macOS выполняется очень быстро.
  • Печать из встроенного диалогового окна браузера Chrome выполняется медленнее. Принтер приостанавливается на мгновение после запуска задания печати. ​​
  • Печать из командной строки с помощью lpr имеет тот же эффект, что и печать из встроенного диалогового окна печати Chrome.
  • Однако переключение на диалоговое окно системной печати с Chrome делает вещи быстрее.

Моя цель - сделать печать из командной строки с lpr гладкой, как из системного диалога. Что могло бы иметь значение?

lpr -o landscape /path/to/my/file.pdf - моя текущая команда. Сгенерированный вывод является ожидаемым, слишком медленным.

Ответ 1

Решение остановлено здесь из комментариев ниже:

В моем случае я просмотрел lpoptions -p printerName -l, чтобы увидеть все параметры и обнаружил, что одно из значений по умолчанию не соответствует моей настройке. Исправлено с помощью -o paramName=paramValue в моей команде, и оно печаталось плавно, как всегда.


Оригинальный ответ:

Если вы еще этого не сделали, попробуйте следующее:

  • Укажите -H immediate для команды lpr, которую вы используете, чтобы переопределить любое планирование, которое может происходить в самой очереди CUPS.
  • Попробуйте указать параметр -d $printername, чтобы переопределить любые решения о том, какой принтер использовать.

Маска для lp дает нам небольшой намек на то, что может произойти:

CUPS предоставляет множество способов установки назначения по умолчанию. Сначала рассматриваются переменные среды LPDEST и PRINTER. Если ни один из них не задан, используется текущий по умолчанию, заданный с помощью команды lpoptions (1), а затем заданный по умолчанию с помощью команды lpadmin (8).

И из lpoptions manpage:

~/.cups/lpoptions - пользовательские значения по умолчанию и экземпляры, созданные пользователями без полномочий root.

/etc/cups/lpoptions - общесистемные значения по умолчанию и экземпляры, созданные пользователем root.

В любом из этих мест могут содержаться настройки, поэтому убедитесь, что у вас нет неожиданной конфигурации.

Re: назначение назначения:

Выбор места назначения может быть несколько ускорен, указав назначение по умолчанию, используя любое из указанных выше способов. Объявление назначения по умолчанию и выбор этого имени с -d при вызове lp или lpr представляется самым простым способом, но переменные ENV также весьма удобны.

Вы также можете использовать lpoptions для проверки параметров вашего принтера, если они установлены на менее оптимальные значения. Соответствие параметров, которые вы используете в "обычных" настройках принтера OSX, должно приводить к тому, что два метода печати работают с одинаковой скоростью.

Если это не решит вашу проблему, следующим шагом будет поиск того, какой формат необработанных файлов ваш принтер является самым быстрым при печати, - и затем попытайтесь подражать этому, выполнив преобразование в командной строке и передав преобразованный файл в (обратите внимание: lp и lpr обе поддерживают использование STDIN в качестве входных данных). При прочих равных условиях ваш компьютер, вероятно, значительно быстрее конвертирует, чем принтер или сервер печати, которые вы используете, и Preview может использовать подобный трюк, например, для печати raw вместо фактического прохождения файла PDF.