Многие люди, которым приходится работать с различного рода принтерами и МФУ, часто сталкиваются с тем, что для решения той или иной задачи требуется просто распечатать документ на похожем или, аналогичном проблемному, принтере.
В качестве реального примера:
В Вашей организации есть филиал в Москве и, допустим, в Екатеринбурге. В обоих офисах имеются аналогичные принтеры. И в один прекрасный день, к Вам обращаются из другого офиса с проблемой при печати на этом самом принтере. Разумеется, любой человек, как-либо связанный с миром IT, первым делом посоветует переустановить драйвера или, например, проверить не зажевало ли где бумагу и точно ли вставлен сетевой провод в разъем аппарата.
Это безусловно важные советы, поскольку исходя из собственной практики 80% проблем решаются именно так. Но бывают ситуации хуже, когда речь идет, например, о каком-то конкретном документе.
Тогда начинаются запросы самого файла, скриншоты окон драйвера, логи системы и много-много прочего. Но и это не всегда срабатывает, поскольку даже самый внимательный человек может что-то пропустить или ошибиться.
Чтобы не делать лишних телодвижений, если на Вашем принтере все хорошо, а на удаленном нет, Вы можете запросить так называемый «PRN-файл» или, говоря проще, print-to-file. Смысл этой возможности в том, что Вам присылают не просто документ, а документ, который был уже сформирован и обработан драйвером. После этого, достаточно отправить его на печать на аналогичное устройство, и исходя из результата, будет ясно, проблема в драйвере, или в самом устройстве.
От теории к действию:
Для Windows машин эта функция реализована изначально, и нам почти не надо изобретать велосипед:
Просто заходим в тотредактор какое-либо ПО, с возможностью печати, выбираем Файл -> Печать и ставим флажок «Печать в файл». После этого останется только указать путь и вуаля.
Для того же, чтобы нам его распечатать, потребуется любой принтер в системе, порт которого бы физически совпадал с принтером, на который мы хотим его отправить. Далее просто «расшариваем» его, допустим, с названием «test», открывает консоль:
Таким образом это работает в Windows.
Но, некоторое время назад, я столкнулся с надобностью создать prn на машине с Mac OS. Ситуация в этом случае была намного более проблемная, поскольку «из коробки» в Mac OS это не предусмотрено. Но ведь это не проблема? Путем поиска и ковыряния, решение нашлось:
Открываем консоль (Программы → Служебные программы → Терминал)
Меняем пользователя на root-а:
Создаем бэкенд:
Записываем туда:
Сохраняем документ с помощью Ctrl+X.
Далее даем права на бэкенд:
Останавливаем службу CUPS:
Открываем на редактирование файл:
В низ данного файла дописываем следующее:
Вновь используем Ctrl+X для сохранения.
Далее открываем следующий файл:
После строки:
Дописать:
Запускаем службу CUPS:
Проверяем:
Должны получить вывод, вроде следующего:
Заходим на web-страницу CUPS — 127.0.0.1:631
Переходим в меню “Принтеры”;
Выбираем в списке созданный нами принтер “testprinter”;
В следующем окне, из раскрывающего списка “Администрирование”, выбираем “Изменить принтер”;
Проходим по всем шагам ничего не меняя, до шага с запросом драйвера для принтера;
Выбираем нужный для тестирования драйвер;
Завершаем операцию установки.
После этого, отправив на печать что-либо на принтер testprinter, сформируется файл, по пути /tmp/test.prn
Отправка на печать производится командой:
Надеюсь данная информация поможет кому-то быстрее и с меньшими затратами решать проблемы в работе принтеров.
В качестве реального примера:
В Вашей организации есть филиал в Москве и, допустим, в Екатеринбурге. В обоих офисах имеются аналогичные принтеры. И в один прекрасный день, к Вам обращаются из другого офиса с проблемой при печати на этом самом принтере. Разумеется, любой человек, как-либо связанный с миром IT, первым делом посоветует переустановить драйвера или, например, проверить не зажевало ли где бумагу и точно ли вставлен сетевой провод в разъем аппарата.
Это безусловно важные советы, поскольку исходя из собственной практики 80% проблем решаются именно так. Но бывают ситуации хуже, когда речь идет, например, о каком-то конкретном документе.
Тогда начинаются запросы самого файла, скриншоты окон драйвера, логи системы и много-много прочего. Но и это не всегда срабатывает, поскольку даже самый внимательный человек может что-то пропустить или ошибиться.
Чтобы не делать лишних телодвижений, если на Вашем принтере все хорошо, а на удаленном нет, Вы можете запросить так называемый «PRN-файл» или, говоря проще, print-to-file. Смысл этой возможности в том, что Вам присылают не просто документ, а документ, который был уже сформирован и обработан драйвером. После этого, достаточно отправить его на печать на аналогичное устройство, и исходя из результата, будет ясно, проблема в драйвере, или в самом устройстве.
От теории к действию:
Для Windows машин эта функция реализована изначально, и нам почти не надо изобретать велосипед:
Просто заходим в тот
Для того же, чтобы нам его распечатать, потребуется любой принтер в системе, порт которого бы физически совпадал с принтером, на который мы хотим его отправить. Далее просто «расшариваем» его, допустим, с названием «test», открывает консоль:
net use lpt1 \\%computer_name\test #Создаем виртуальный lpt-порт, и ассоциируем его с расшареным принтером
copy /b c:\%path_to_file% lpt1 #Отправляем наш prn на виртуальный порт
Таким образом это работает в Windows.
Но, некоторое время назад, я столкнулся с надобностью создать prn на машине с Mac OS. Ситуация в этом случае была намного более проблемная, поскольку «из коробки» в Mac OS это не предусмотрено. Но ведь это не проблема? Путем поиска и ковыряния, решение нашлось:
Открываем консоль (Программы → Служебные программы → Терминал)
Меняем пользователя на root-а:
$ sudo bash
Создаем бэкенд:
# nano /usr/libexec/cups/backend/file
Записываем туда:
#!/bin/bash
cat >> /tmp/foo
Сохраняем документ с помощью Ctrl+X.
Далее даем права на бэкенд:
# chmod 755 /usr/libexec/cups/backend/file
Останавливаем службу CUPS:
# launchctl stop org.cups.cupsd
Открываем на редактирование файл:
# nano /etc/cups/printers.conf
В низ данного файла дописываем следующее:
Info testprinter
Location
MakeModel testprinter
DeviceURI file:/tmp/test.prn
State Idle
StateTime 1289988411
Type 36868
Product ( testprinter)
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
Вновь используем Ctrl+X для сохранения.
Далее открываем следующий файл:
# nano /private/etc/cups/cupsd.conf
После строки:
DefaultAuthType Basic
Дописать:
FileDevice Yes
Запускаем службу CUPS:
# launchctl start org.cups.cupsd
Проверяем:
# lpstat -p testprinter
Должны получить вывод, вроде следующего:
printer testprinter is idle. enabled since Wed Nov 17 13:06:51 2010
Заходим на web-страницу CUPS — 127.0.0.1:631
Переходим в меню “Принтеры”;
Выбираем в списке созданный нами принтер “testprinter”;
В следующем окне, из раскрывающего списка “Администрирование”, выбираем “Изменить принтер”;
Проходим по всем шагам ничего не меняя, до шага с запросом драйвера для принтера;
Выбираем нужный для тестирования драйвер;
Завершаем операцию установки.
После этого, отправив на печать что-либо на принтер testprinter, сформируется файл, по пути /tmp/test.prn
Отправка на печать производится командой:
# lp -d %real_printer_name% /tmp/test.prn
Надеюсь данная информация поможет кому-то быстрее и с меньшими затратами решать проблемы в работе принтеров.