Easy print своими руками




Статья описывает альтернативные способы печати из терминальной сессии на локальный принтер.

Данное решение можно использовать в тех случаях, когда наблюдаются проблемы с распечаткой документов с терминального сервера путем проброса локального принтера в терминальную сессию средствами протокола RDP. Подобные проблемы замечены при использовании некоторых моделей принтеров на сервере удаленных рабочих столов windows server 2024. Если говорить более точно то речь идет о отказоустойчивой ферме серверов удаленных рабочих столов с 10ком серверов. Локальный принтер подключается в настройках подключения к УРС. В терминальной сессии принтер виден, однако при отправке документа на этот принтер документ не распечатывается, сообщений об ошибках не возникает. манипуляции с разными драйверами и настройками не помогают.  Пользователи работают на терминальном сервере в программе 1С и не могу печатать на своих локальных принтерах. Установка драйверов принтеров на сервере и подключение расшаренных принтеров запрещена политикой безопасности (на то есть свои причины). С проблемой печати с помощью easy print столкнулись в связке windows server 2024  windows 7(x32) и некоторые линейки принтеров HP. Возможно данные проблемы наблюдаются и в других связках ПО.

Суть метода заключается в том, что по расписанию 1 раз в минуту на локальном ПК запускается bat файл который отправляет на принтер, который установлен по умолчанию на локальном ПК, файл формата pdf, который расположен на диске Х. После того как файл передан на принтер он удаляется с диска Х. Диск Х подключается к RDP сессии по средствам самого протокола RDP. В терминальной сессии пользователь, каким либо способом сохраняет нужный для печати документ в диск Х. В конфигурациях 1С работающих на платформе 8.3 существует возможность сохранять печатные форму документов в пару кликов мыши. Операция сохранения в pdf занимает не больше действий пользователя чем стандартно отправить на печать. Так же можно использовать для получения pdf какой либо pdf принтер.

Для настройки работоспособного решения необходимо провести ряд настроек:

1. Необходимо чтобы на локальном ПК имелся диск с буквой Х. диск может быть как локальным, так и сетевым.

2.  В настройках РДП подключения необходимо подключить диск Х к терминальной сессии. Локальные принтеры можно не подключать так как данное решение предполагает что стандартный easy print не работает.

3. Создать папку c:print.  В которую скопировать файлы: PDFtoPrinter.exe, print.bat, print.exe

4. В стандартном планировщике windows создать задание со следующими настройками:

 

 

Данное задание выполняет по расписанию 1 раз в минуту программу print.exe. print.exe представляет собой скомпилированный при помощи «Advanced BAT to EXE Converter»  файл print.bat.  Компиляция bat в exe позволяет скрыто запускать задание печати, в процессе работы не возникает никаких дополнительных окон. Если в планировщике запускать bat,  то наблюдается кратковременное мерцание черного окна терминала при выполнении задания что отвлекает пользователя. Если скопировать в заданную папку несколько файлов, то скрипт автоматически запустит их на печать.

Файл print.bat

echo off
for  %%f in (x:*.pdf) do (
                REN "%%f" "%RANDOM%.pdf"
)
for  %%f in (x:*.pdf) do (
               c:printPDFtoPrinter.exe %%f
               del /Q %%f            
)

 

В приведенной инструкции все пути и настройки сделаны под конкретные условия. Описанный метод можно модифицировать как угодно под любые ситуации.

7 Comments

  1. andryandry

    нормальный способ, только лучше по событию изменения в папке запускать печать. (не уверен что это силами коммандной строки можно сделать)

    Reply
  2. kolegov

    (1)Можно по разному сделать. Тут кто на что горазд и способен. Я показал самое простое исполнение, стандартными средствами ОС, с минимальным привлечением стороннего софта.

    Reply
  3. FesenkoA

    FolderMill

    Reply
  4. androgin

    в планировщике в аргументах: «-File путьКФайлу» и не будет мерцать черный экран

    Reply
  5. kolegov

    (2)FolderMIll интересное решение, широкие возможности. Возможно пригодится в будущем. Но пока покупка данного ПО никак не оправдана.

    Reply
  6. kolegov

    (4)Проверил «-File C:printprint.bat» консоль мерцает, bat не отрабатывает

    Reply
  7. androgin

    (6) Вообще-то я писал про поле АРГУМЕНТЫ

    И запускаешь не правильно!

    твоя строка «-File C:printprint.bat» либо «/с C:printprint.bat» (точно сейчас не скажу, как для батника правильно) вся должна быть в аргументах!

    А в запускаемой программе укажи CMD.EXE

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *