gifts2017

Печать в терминале Windows

Опубликовал Виктор Новожилов (compil7) в раздел Администрирование - Сервисные утилиты

Существует проблема печати в терминальной сессии Windows. Особенно это актуально для тех, кто работает с 1С. Есть как платные, так и бесплатные решения. Например, платное решение ScrewDrivers от фирмы triCerat стоит более 50000 рублей. Вашему вниманию предлагается программа, которая в связке с бесплатными FoxitReader и PDFCreator решает обозначенную проблему.

Существует довольно много как стандартных, так и нестандартных решений проблемы печати в терминальной сессии Windows. Данная публикация и предлагаемая программа-скрипт, написанная на AutoIT, не претендуют на новизну, а являются результатом практической реализации идей из следующих источников:

http://autoit-script.ru/index.php?topic=5266.0

http://habrahabr.ru/post/112404/

http://www.forum.mista.ru/topic.php?id=249047

http://viterminal.ru/blog/page/interesnoe-reshenie-po-probrosu-printerov

Итак, исходные данные. 1)На клиенте должен быть установлен FoxitReader. 2)В терминальной сессии - виртуальный принтер PDFCreator. 3)Также необходимо наличие программы-скрипта PrintFoxit.exe для 32-х разрядной или PrintFoxit_x64.exe для 64-х разрядной версии Windows. Программа-скрипт предполагает стандартный каталог установки программ - Program Files, иначе работать не будет, чтобы работало нужно править скрипт (на всякий случай исходные коды прилагаются).

1.На клиенте создаем каталог, куда будут копировать pdf-файлы. В этот каталог помещаем исполняемый файл PrintFoxit.exe или PrintFoxit_x64.exe в зависимости от версии Windows. Создаем ярлык на PrintFoxit.exe в автозагрузке и запускаем файл. Программа должна быть в памяти системы, так как она постоянно анализирует свой текущий каталог на наличие pdf-файлов.

2.Настраиваем терминальный клиент. В его свойствах, там где определяются локальные ресурсы, должна стоять галочка напротив диска, на котором находится каталог с файлом PrintFoxit.exe. См. рис.1. У меня это диск D:\ .  Т.е. к терминальной сессии должен быть подключен локальный диск клиента с каталогом, куда будут копироваться PDFCreator-ом файлы, отправленные в терминале на печать.

3.В терминальной сессии настраиваем PDFCreator. В настройках Авто-сохранение указываем подключенный в терминале диск с папкой, где находится PrintFoxit.exe. У меня это: \\d\ДляПечати

4.В терминальной сессии в качестве принтера по-умолчанию для удобства нужно указать принтер PDFCreator.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Печать в терминале для FoxitReader
.7z 483,01Kb
16.01.13
32
.7z 483,01Kb 32 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр (Иной) 17.01.13 01:17
А в чём проблема то? Если принтера сетевые - беспроблемно. Не сетевые можно сделать сетевыми с помощью принтсерверов.

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

Ни в коем случае не нужно "тянуть" свои локальные принтера терминалным подключением, иначе будут множится принтера на терминалве. А так как описано выше - работает =). Причём без использования стороннего софта, штатными средствами.

Единственное условие - условно единая сеть со статическими апишками.
2. Alister (Alister) 17.01.13 01:26
На терминал прописываются все принтера, на которые нежна печать и вуаля.

Не в применение этой разработки, а только для уточнения - не под все принтеры есть драйвера, например для 2008R2
3. Александр (Иной) 17.01.13 01:52
(2) Alister, Тоже вариант. Но тут тогда больше проблема в планировании развития =). Потому как получается сервак новенький поставить поставили, а про то что на нём работать придется не подумали...

Тогда вопрос становится интересным.
4. Виктор Новожилов (compil7) 17.01.13 18:14
(1) Иной, описываемый в публикации способ печати - это один из самых простых вариантов решения.
Ваш вариант (хотя, конечно, он не ваш, потому что применяется уже давно) тоже использовался и неоднократно. Но есть организации или отдельные бухгалтера, которые ни в какую не хотят осуществлять дополнительные расходы, например, покупать принтсерверы. Кроме этого, на терминал нужно дополнительно устанавливать драйвера принтера, а это не всегда возможно, если сам не администрируешь сервер.
В используемом способе подключения ни в коем случае не нужно пробрасывать локальные принтеры на терминальный сервер!!! Подключается только локальный диск с папкой, в которую через терминальную сессию сбрасываются pdf-документы на печать. После печати эти документы автоматически удаляются с помощью используемой программы-скрипта. Если нужно, то скрипт можно переделать и архивировать распечатываемые документы в отдельную папку пользователя, потом в случае каких-либо непоняток предъявить ему в качестве доказательства.
В предложенном способе абсолютно не нужно условно-единая сеть со статическими ip-шниками.
5. Виктор Новожилов (compil7) 17.01.13 18:19
(2) Alister, очень часто в качестве терминального сервера используют обычную WindowsXP. Предложенный способ может решить проблему печати, даже если в качестве терминала используется FreeBSD или Linux.
6. Александр (Иной) 17.01.13 18:23
Согласен. Переспав с этой мыслью, соглашаюсь. В варианте когда нужно работать с тем что уже есть.

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

То есть весть механизм заключается в переборе содержимого папки и отсылке оного на печать?
7. Виктор Новожилов (compil7) 17.01.13 18:27
(3) Иной, зачастую так и происходит. Приходишь в организацию и слышишь: мы купили сервер для 1С, чтобы быстрее работать. Потом выясняется, что у них 1С 7.7 и работает в ней около 10 человек, и используется файловый вариант, и база выросла. Покупать sql-версию не хотят, но хотят чтоб быстрее работало. Естественно, единственное решение - терминальный режим. Хорошо, если все сидят в одном здании и есть ethernet, тогда не проблема просто расшарить принтеры...
8. Виктор Новожилов (compil7) 17.01.13 18:34
(6) Иной, ну конечно! Клиент - это обычная бухгалтерша, у которой стоит обычный usb-шный принтер и которая работает в терминале, а терминал установлен неизвестно где...
В папке максимум находится только исполняемый файл скрипта и один pdf-документ, который после распечатки удаляется.
9. Александр (Иной) 17.01.13 18:38
=). У меня просто пользователи разбросаны по стране группами более чем по 100 человек. И много-много принтеров.

Тут уже не до экономии =)
10. Виктор Новожилов (compil7) 17.01.13 18:45
(9) Иной, в вашем случае, конечно, идеальный вариант - это ScrewDrivers от triCerat. Дорого, но зато сердито и надежно.
11. Александр (Иной) 17.01.13 18:55
Проще принтера покупать к которым есть дрова. Тем более что дешевле покупать большие МФУ-кши рассчитанные на сотни тысяч страниц печати чем дергаться с мелкими принтерами (которые при таком объеме печати долго не живут).

Ну и для ускорения работы баз основную роль играет не версия винды а качество железа. У нас блейд система и 2003 винда работает нормально (терминалки). Жаль когда решение принимают не ИТ специалисты, или если принимают то не обдуманные. А потом уже и деваться то некуда =)
12. Alister (Alister) 17.01.13 20:34
Иной, Вы по-видимому фикси, а я узнал, что будет сервер с win2008r2 только когда его уже купили, ибо железо обслуживает одна фирма, а 1С другая, так что не до долгосрочного планирования, увы :(
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа