powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Печать
9 сообщений из 9, страница 1 из 1
Печать
    #35582795
IMOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В сети имеется "туча" (12 штук) совершенно одинаковых конструкционно и одинаково сконфигурированных сетевых принтеров, подлюченных через порты TCP/IP на одном компьютере (сервере печати). Программа, работающая на этом компьютере получает задания на формирование отчетов (счетов) от "манагеров", формирует эти счета и отправляет на печать на нужный принтер (которых, как было сказано, всего 12 штук). При этом, печать выполняется на тот принтер, который стоит в данный момент "по умолчанию". Поэтому каждый раз, чтобы распечатать отчет "куда нужно", программе приходится в системе переназначать принтер по умолчанию. А теперь вопрос. Можно ли, в принципе, при печати из программы (VBasic) только как-то подменять IP адрес порта, на котором "висит" нужный принтер, а все остальное оставлять неизменным?

Сейчас на сервере печати стоит MS Win Ser 2003 (64 разр). Но можем поставить что угодно.
Спасибо тем, кто дочитал вопрос :).
...
Рейтинг: 0 / 0
Печать
    #35584343
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто, раз принтеры "одинаковы конструкционно", объедините их в пул на сервере печати,
и распределением очереди печати будет заниматься он. у "манагеров" "принтер" будет только
один. Искать, надеюсь, "манагерам" не придется, на котором принтере из пула распечатался
документ?
...
Рейтинг: 0 / 0
Печать
    #35586370
IMOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. Но здесь следует уточнить, что "манагеры" сидят в разных населенных пунктах, каждый со своим принтером :). По запросу "манагера" документ должен печататься именно на его принтер. Идея состоит в следующем. Я устанавливаю на сервере печати через порт TCP/IP ОДИН принтер на любой IP-адрес. Затем из программы я отправляю документы на этот принтер, подменив (как-то ??) ему IP-адрес порта, который однозначно связан с нужным "манагером".
...
Рейтинг: 0 / 0
Печать
    #35586461
Dick Johnson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMOLПри этом, печать выполняется на тот принтер, который стоит в данный момент "по умолчанию". Поэтому каждый раз, чтобы распечатать отчет "куда нужно", программе приходится в системе переназначать принтер по умолчанию. Обязательно печатать на принтер по умолчанию? Отправляемый на печать файл какого-то спец формата?
просто у меня тоже программа готовит документы и посылает на печать на разные принтеры. Документы в экселевском формате и печатаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim bkExcel As Excel.Workbook
.
.
select case paramPrint
   case "bw"
        CurrPrntr = "\\Srv07\HP 4250"
   case "col"
        CurrPrntr ="\\Srv07\HP Color LaserJet 2500"
end select
.
bkExcel.PrintOut Preview:=False, ActivePrinter:=CurrPrntr
т.е. в зависимости от потребности меняю принтер на который идет печать, не трогая принтер по умолчанию.
...
Рейтинг: 0 / 0
Печать
    #35586817
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMOLНо здесь следует уточнить, что "манагеры" сидят в разных населенных пунктах, каждый со своим принтером :). По запросу "манагера" документ должен печататься именно на его принтер.
Так у вас сервер терминалов поднят? А что, в свойствах RDP-подключения нельзя перенаправить локальные принтеры?
Они же будут у них по умолчанию...
...
Рейтинг: 0 / 0
Печать
    #35587838
IMOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dick Johnson Обязательно печатать на принтер по умолчанию? Отправляемый на печать файл какого-то спец формата?
просто у меня тоже программа готовит документы и посылает на печать на разные принтеры. Документы в экселевском формате и печатаю так:
т.е. в зависимости от потребности меняю принтер на который идет печать, не трогая принтер по умолчанию.

Используется объект Printer, который, насколько мне известно, отсылает только на притер по умолчанию? Здесь даже это где-то обсуждалось.
...
Рейтинг: 0 / 0
Печать
    #35587872
IMOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM Так у вас сервер терминалов поднят? А что, в свойствах RDP-подключения нельзя перенаправить локальные принтеры?
Они же будут у них по умолчанию...

Сервер терминалов не поднят. Прошу прощения, но немного не понял. Наверное плохо изложил суть проблемы.

"Манагеры", работая на локальных компьютерах с клиентскими приложениями, отсылают на сервер только запрос: номер документа. На сервере все запросы обрабатывает специальная программа: выстраивает их в очередь, определяет откуда они пришли, формирует запрошенный отчет и отправляет его "взад" на "манагерский" принтер, который установлен на сервере через TCP/IP порт.
...
Рейтинг: 0 / 0
Печать
    #35587983
SoftParanoik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще то VB поддерживает коллекцию Printers
Код: plaintext
1.
2.
3.
4.
5.
Dim wPrn As Printer

For Each wPrn In Printers
    MsgBox wPrn.DeviceName
Next
...
Рейтинг: 0 / 0
Печать
    #35588456
IMOL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SoftParanoikВообще то VB поддерживает коллекцию Printers
Код: plaintext
1.
2.
3.
4.
5.
Dim wPrn As Printer

For Each wPrn In Printers
    MsgBox wPrn.DeviceName
Next



Маленькая проблема .... "Property DeviceName As String read-only" :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Печать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]