Диагностика проблем с печатью
В текущей реализации 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
И принтеры начинают видеться.