Вопрос или проблема
Я спрашивал здесь несколько месяцев назад, как печатать и проверять результаты с помощью команды lp (CUPS) в Ubuntu.
После нескольких попыток я смог печатать обычные текстовые файлы. Мне удалось напечатать, выбрав некоторые настройки (двусторонняя печать, размер бумаги, источник бумаги и т.д.)
Я нашёл драйверы для Linux здесь (файлы PPD): https://www.openprinting.org/download/PPD/
Теперь у меня небольшая проблема: когда я отправляю файл .pdf на принтер (Ricoh MP Aficio 1106 EX, подключенный по TCP-IP), печать идет медленно, требуется более 30 секунд, чтобы отправить файл на принтер. Файлы .txt печатаются в момент их отправки. У вас есть идеи, как это решить?
Я пытался изменить сокет устройства на 9100 порт, но это только вызвало ошибки.
EDIT1:
Я пробовал использовать команду LPR вместо LP:
lpr -sPrinterIP /absolute/path/to/file.pdf
Но работает также медленно.
EDIT2:
Я установил qz-tray, своего рода сервер печати/API. Когда я пробую демо PDF, он тоже печатает медленно.
EDIT3:
Я сейчас попробовал с помощью стандартного PDF просмотрщика (EVINCE), потому что думал, что у меня нехватка памяти, и распечатал тот же файл. Все прошло хорошо, на нормальной скорости.
EDIT4:
Я пробовал некоторые другие драйверы (обычные и рекомендованные производителем принтера), скорость та же.
EDIT5:
Я нашел эту ссылку: https://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS
Но не могу понять, если фильтрация “раздражает меня”, потому что мой принтер является PCL-принтером (а я использую драйвер pxl…). Мог бы кто-нибудь объяснить мне это?
EDIT 6:
Я нашел источник проблемы: когда я печатаю pdf файл только с текстом, все работает отлично. Но когда я отправляю pdf файл с изображением, печать заходит в предварительный процесс (я не могу полностью утверждать это) и требуется более 30 секунд, чтобы отправить любой пакет на принтер (это проверено с помощью Wireshark).
Я могу предположить, что файл PPD (драйвер, предоставленный поддержкой Ricoh) содержит что-то в коде, что отправляет какую-то команду для обработки файла.
Я нашел это в файле PPD. Я думаю, что это корень проблемы замедления:
*%========== Ghostscript Command line ==========
*FoomaticRIPCommandLine: "(printf '\033%%-12345X@PJL\n@PJL JOB\n@PJL SET COPIES=&copies;\n'%G|perl -p -e "s/\x26copies\x3b/1/"
(gs -q -dBATCH -dPARANOIDSAFER -dNOPAUSE -dNOMEDIAATTRS -dNOINTERPOLATE %B%A%C %D%E | perl -p -e "s/^\x1b\x25-12345X//" | perl -p -e "s/\xc1\x01\x00\xf8\x31\x44/\x44/g"
(printf '@PJL\n@PJL EOJ\n\033%%-12345X&apos"
*End
Я нашел эту статью https://lists.linuxfoundation.org/pipermail/printing-foomatic/2012/002791.html, которая подтверждает мои идеи: драйвер ppd обрабатывает все файлы с помощью Ghostscript.
EDIT 7:
Поддержка Ricoh сказала мне, что команда печати “lp” может использовать “стандартный PDF просмотрщик” для обработки файла, что замедляет процесс печати. Я не знаю, как это проверить.
Большое спасибо.
Смените драйвер. Почему? Рекомендуемый драйвер RICOH для Linux использует неэффективный файл PPD. Это замедляет предварительную обработку файлов. (Драйверы для Windows также могут использовать файл PPD, и это замедляет процесс, если файл не оптимизирован)
Я использовал драйверы Gutenprint, чтобы решить эту проблему. Реальная работа сейчас заключается в том, чтобы получить правильный драйвер для ваших принтеров, потому что драйверы Gutenprint не существуют для всех машин RICOH (и у других производителей такая же проблема). Ближайший драйвер к gutenprint для 1106EX – это драйвер Aficio MP 1100. Но будьте осторожны, когда отправляете команды lp: у коробок для бумаги разные названия.
Ответ или решение
Проблема медленной печати через команду lp
в Ubuntu, как было описано в вашем случае, представляет собой распространённую сложность, особенно когда дело касается формата PDF и несоответствий между драйверами и устройствами печати. Ниже приведены шаги и рекомендации по решению этой проблемы.
Анализ проблемы
На основании вашего описания можно выделить несколько ключевых моментов:
-
Быстрая печать текстовых файлов: Печать текстовых документов выполняется мгновенно, что может указывать на то, что основная проблема возникает при преобразовании и отправке PDF-файлов на принтер.
-
Замедление при печати PDF: Вы отметили, что когда вы отправляете PDF-файл, печать осуществляется медленно, особенно если файл содержит изображения. Это может быть связано с тем, как драйвер (PPD-файл) обрабатывает данные для печати.
-
Использование неподходящих драйверов: Некоторые драйверы могут неэффективно обрабатывать PDF с изображениями, что замедляет процесс печати. Это подтверждается вашей попыткой использовать различные драйверы и обнаружением, что использование драйвера Gutenprint улучшило ситуацию.
Рекомендации по решению проблемы
-
Замена драйвера: Как вы уже обнаружили, использование драйвера Gutenprint вместо рекомендуемого драйвера Ricoh может решить проблему. Gutenprint часто более оптимален для работы с различными форматами файлов, включая PDF. Для вашего принтера Ricoh MP Aficio 1106 EX вам следует использовать драйвер, соответствующий модели Aficio MP 1100.
-
Проверка PPD файла: Убедитесь, что PPD-файл, используемый вашим принтером, оптимизирован для обработки PDF. Поскольку вы упомянули о наличии кода, использующего Ghostscript для рендеринга файлов, убедитесь, что ваше оборудование поддерживает GDI (Graphics Device Interface) или другой эквивалент, который может работать быстрее.
-
Настройки Ghostscript и PJL: Возможно, вам нужно будет изменить или оптимизировать параметры Ghostscript в PPD-файле. Отключение ненужных опций или фильтров может улучшить скорость обработки. Обратите внимание на элементы PJL (Printer Job Language), которые могут создавать задержки.
-
Тестирование с различными PDF-файлами: Попробуйте протестировать разные типы PDF-файлов, включая простые текстовые PDF, многостраничные документы и PDF с высоким разрешением изображений. Это поможет вам лучше понять, как драйвера обрабатывают различные файловые форматы.
-
Мониторинг сети: Поскольку ваш принтер подключен по TCP/IP, используйте инструменты мониторинга сети, такие как Wireshark, чтобы отслеживать трафик и обнаруживать, где возникают задержки. Это может помочь в выявлении проблем с сетью или конфигурацией.
-
Обновление системы и ПО: Проверьте, обновлены ли у вас все пакеты, связанные с CUPS, Ghostscript и драйверами принтера. Иногда обновления могут включать исправления ошибок и улучшения производительности.
Заключение
Проблема медленной печати с использованием команды lp
в Ubuntu, вероятно, связана с использованием неэффективного PPD-драйвера для вашего принтера. Рекомендация по замене драйвера на Gutenprint, а также тестирование конфигураций и мониторинг сети должны помочь значительно улучшить скорость печати PDF-файлов. Если после всех этих шагов проблема будет сохраняться, стоит рассмотреть возможность обращения в службу поддержки Ricoh для получения специализированной помощи.