Вывод информации на принтеры

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VolkovAlexander
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 16.08.2005 (Вт) 13:08
Откуда: Нижний Новгород

Вывод информации на принтеры

Сообщение VolkovAlexander » 16.08.2005 (Вт) 13:12

Привет!
Не могли бы вы подсказать, каким образом можно достучаться до сетевого принтера и напечатать на нем страницу текста.
К примеру принтер подключен к компу "Server1". А мне нужно печатать страницу с компа "MyName"...
Помогите, пожалуйста! Очень надеюсь... :roll:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.08.2005 (Вт) 13:15

Если принтер прописан в системе, то не важно, где он находится.
А если не прописан, надо прописать.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

VolkovAlexander
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 16.08.2005 (Вт) 13:08
Откуда: Нижний Новгород

Сообщение VolkovAlexander » 16.08.2005 (Вт) 13:26

Так а каким образом к нему можно обратиться? Для печати формы я использую функцию FormName.PrintForm. Эта функция печатает на принтере, установленном в системе как "принтер по умолчанию". А мне нужно, к примеру, напечатать одну форму на одном принтере, другую на другом... Как быть в этом случае с адресацией?

Спасибо за поддержку. :wink:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.08.2005 (Вт) 13:28

Посмотри коллекцию Printers (если VB6) и тебе многое откроется. Если у тебя VB5, то к твоим услугам WinAPI и WMI.
Lasciate ogni speranza, voi ch'entrate.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 16.08.2005 (Вт) 13:31

MSDN писал(а):The Printer object enables you to communicate with a system printer (initially the default system printer).

The Printerscollection enables you to gather information about all the available printers on the system.

Syntax

Printer

Printers(index)

The index placeholder represents an integer with a range from 0 to Printers.Count-1.

Remarks

Usegraphics methods to draw text and graphics on the Printer object. Once the Printer object contains the output you want to print, you can use the EndDoc method to send the output directly to the default printer for the application.

You should check and possibly revise the layout of your forms if you print them. If you use the PrintForm method to print a form, for example, graphical images may be clipped at the bottom of the page and text carried over to the next page.

The Printers collection enables you to query the available printers so you can specify a default printer for your application. For example, you may want to find out which of the available printers uses a specific printer driver. The following code searches all available printers to locate the first printer with its page orientation set to Portrait, then sets it as the default printer:

Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
' Set printer as system default.
Set Printer = X
' Stop looking for a printer.
Exit For
End If
Next

You designate one of the printers in the Printers collection as the default printer by using the Set statement. The preceding example designates the printer identified by the object variable X, the default printer for the application.

Note If you use the Printers collection to specify a particular printer, as in Printers(3), you can only access properties on a read-only basis. To both read and write the properties of an individual printer, you must first make that printer the default printer for the application.

VolkovAlexander
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 16.08.2005 (Вт) 13:08
Откуда: Нижний Новгород

Сообщение VolkovAlexander » 16.08.2005 (Вт) 13:46

"Dim X As Printer

X.DeviceName = "Printer_1"
frmHelp.PrintForm

X.DeviceName = "Printer_2"
frmHelp.PrintForm"

Этот код распечатает форму на разных принтерах? Думаю, что на одном...А как получить доступ к коллекции Printers и установить принтер для печати "по умолчанию". Вот...Это мне и нужно. Программно устанавливать принтер для "печати по умолчанию".

... :cry:

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 16.08.2005 (Вт) 14:20

Стыдно! См. пример Amed'а. Вот его переработанная версия с комментариями:
Код: Выделить всё
Dim X As Object
For Each X In Printers
    'Поиск устройства с именем "твой принтер"
    If X.DeviceName = "твой принтер" Then
        'Установить по умолчанию
        Set Printer = X
        ' Усё, шеф!
        Exit For
     End If
Next

'Печатаем форму frmHelp
frmHelp.PrintForm
Моду создают модоки, а распространяют модозвоны.

VolkovAlexander
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 16.08.2005 (Вт) 13:08
Откуда: Нижний Новгород

Сообщение VolkovAlexander » 16.08.2005 (Вт) 14:37

ок. Спасибо всем! :lol:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 16.08.2005 (Вт) 14:45

hCORe:)

Я в асе уже давно сделал точно такой же пример :)

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 16.08.2005 (Вт) 16:34

Телепатия существует! :lol:
Моду создают модоки, а распространяют модозвоны.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 66

    TopList