ThinPrint своими руками //

Ситуация - терминальные сервера в головном офисе, thinstation на филиале канал 256К. Сети центрального офиса и филиалов соеденены туннелями, на филиалах сетевые принтера (JetDirect) и принтера, подключенные к thinstation установлены на терминальном сервере. Для работы - вполне комфортно, но при печати большойго объема канал "просаживается".

Есть конечно ThinPrint. Но это довольно дорогое решение, доплнительный головняк с лицензированием, особенно если используется кластер терминальных серверов и несколько сотен терминалок, кроме того, под него нет клиента для thinstation.

Решение по феншую - использовать возможность сжатия заданий на печать cups. К сожалению, JetDirect не понимает опции ipp compression=gzip, поэтому

На филиале поднимаем cups сервер (сетевое имя cups.filial.company.com), настраиваем на нем принтер c именем MY_PR_1 socket://ip_address_of_printer:9100 для JetDirect и MY_PR_2 socket://ip_address_of_ts:9101 для USB принтера на тонком клиенте. Отмечаем галочку Share published printers connected to this system и Allow printing from the Internet.

В Центральном офисе поднимаем cups сервер, сетевое имя cups.company.com ставим на нем принтер MY_FILIAL_PR_1 ipp://cups.filial.company.com/printers/MY_PR_1?compression=gzip и MY_FILIAL_PR_2 ipp://cups.filial.company.com/printers/MY_PR_2?compression=gzip Ставим на cups.company.com Samba, расшариваем принтера MY_FILIAL_PR_1 MY_FILIAL_PR_2

На терминальном сервере удаляем принтер MY_PR_1, MY_PR_2, ставим MY_FILIAL_PR_1, MY_FILIAL_PR_2. Что получилось:

На терминальном сервере формируется задание на печать, это несжатый битмап, который уходит по локалке на cups.company.com, откуда он отправляется на cups.filial.company.com но уже пережованный с компрессией gzip, где распаковывается и по филиальной локалке в виде того же битмапа долетает до принтера. Степень сжатия для задания на печать около 10:1, так что пользователи сразу заметят изменения.

Преимущества:

1. Радикально меньше требования к каналу.

2. Cups позволяет рабоать с PostScript драйверами, то есть на терминальном сервере не нужно держать зоопарк драйверов, преобразование задания на печать осуществляется на cups.filial.company.com, если принтер не понимает PostScript. Требуется меньше памяти, меньше процессорного времени, меньше глюков.

Недостатки

1. Не работает галочка "разобрать по копиям" при печати нескольких экземпляров для некоторых виндовс приложений (например MSWORD, 1C) . То есть не зависмо от этой галочки страницы будут выводиться в порядке 1,1,2,2 а не 1,2,1,2. При том, что, например, excel печатает правильно. Это связано к кривой работой такого софта с библиотеками EMF. Не лечится.

Удачи всем.