Диагностика проблем с печатью

Материал из База знаний Etersoft
Перейти к: навигация, поиск

В текущей реализации Wine выводит задания на печать с помощью команды lpr, которой на вход подаётся PostScript-файл, сформированный драйвером принтера WINEPS.DRV. Важно, что команда lpr должна быть из состава системы печати CUPS. При проблемах с печатью стоит проверить следующие вещи:

1. Вывод команды lpstat -t

$ lpstat -t
планировщик запущен
назначение системы по умолчанию: hp
устройство для Epson: ipp://design.office.etersoft.ru:631/printers/Epson
устройство для hp: ipp://192.168.0.50:631/printers/hp
устройство для hpold: ipp://192.168.0.50:631/printers/hpold
устройство для hpps: ipp://192.168.0.50:631/printers/hpps
Epson принимает запросы с момента Чтв 29 Янв 2009 13:41:50
hp принимает запросы с момента Чтв 29 Янв 2009 19:17:00
hpold принимает запросы с момента Чтв 29 Янв 2009 19:17:01
hpps принимает запросы с момента Чтв 29 Янв 2009 19:16:59

Отсюда можно увидеть, запущен ли сервер CUPS ("планировщик запущен"), какой принтер выбран по умолчанию, и какие принтеры доступны.

2. В некоторых системах (Debian, Ubuntu) проблема возникает из-за того, что установленная команда lpr не относится к CUPS. Проверьте, что установлен пакет cupsys-bsd и не установлен пакет lpr.

  • - начиная с с Ubuntu 12.04 пакет называется cups-bsd

3. Это ещё не подтверждённая бага, но возможно, что если принтер по умолчанию не выбран, некоторые программы не печатают.

4. Проверяем печать через notepad в Wine.

5. Возможно, проблемы с печатью вызваны не подсистемой печати, а связаны с конкретной программой, и проблемы только в ней.

Чтобы получить подробный вывод о инициализации подсистемы печати, запускайте с $ WINEDEBUG=+winspool

Параметры печати

Если параметры печати, указанные при печати из Win-приложения, не применяются, следует напечатать документ в файл, а файл вывести на печать командой lpr с соответствующими параметрами. Сейчас WINE@Etersoft формирует для печати следующую строку:

lpr -T'НазваниеЗадания' -P'НазваниеПринтера' -# 4 -o Collate=True -o sides=one-sided

где 4 - количество экземпляров, one-sided - режим дуплекса (выключен), может быть также two-sided-long-edge или two-sided-short-edge.

Полное описание параметров lpr: на сайте CUPS.

Проверка печати через samba

smbclient -U user //server/printer -c "print /etc/hosts"

Возможна ошибка

NT_STATUS_ACCESS_DENIED opening remote file hosts-*

При этом на сервере создаётся пустой файл в /var/spool/samba

https://bugzilla.altlinux.org/show_bug.cgi?id=26703

До 3.6.7 включительно проблема не решена. Нужны сборки samba < 3.6.0 или с приложенным патчем https://bugzilla.samba.org/show_bug.cgi?id=8769#c14

Solaris

На Solaris используется система печати, которая формирует список принтеров в файле /etc/printers.conf. Поэтому до исправления определения файла нужно сделать ссылку

# ln -s printers.conf /etc/printcap

И принтеры начинают видеться.

Ссылки