Как организовать построчную печать?

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

Как организовать построчную печать?

Сообщение rodnoi » 31.05.2006 (Ср) 15:42

Подскажите,плиз,кто знает, как организовать построчную печать.
На принтер необходимо печатать строки при их поступлении в экранную форму.Как это сделать?Метод Printer.Print, а затем Printer.EndDoc позволяет печатать уже сформированные строки.А мне надо в режиме "онлайн".

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 31.05.2006 (Ср) 15:59

Экранная форма?
А куда они поступают конкретно?.

может поможет form.PrintForm
Пора уже всем хорошим людям собраться и убить всех плохих людей.

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

Сообщение alibek » 31.05.2006 (Ср) 16:06

Если принтер не матричный, то никак.
Если матричный, то открывай порт (Open "lpt:" For Output As #1) и выводи команды в порт.
Lasciate ogni speranza, voi ch'entrate.

rodnoi
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 24.06.2004 (Чт) 12:13

Сообщение rodnoi » 01.06.2006 (Чт) 8:48

Спасибо! Буду искать матричный принтер.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 01.06.2006 (Чт) 8:52

Для начала попробуй на том, что есть. Старые струйные Эпсоны прекрасно печатали тем же способом. Но на лазерном не прокатит точно :)
Лучший способ понять что-то самому — объяснить это другому.

rodnoi
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 24.06.2004 (Чт) 12:13

Сообщение rodnoi » 17.10.2006 (Вт) 9:33

Спасибо, все работает с матричным принтером, но если он локальный, а как задать путь к сетевому(если он тоже подключен к LPT порту другого компьютера? Работает только Ореn Lpt1 локальном,OPEN "IP ..." не получается.Может кто знает?

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

Сообщение alibek » 17.10.2006 (Вт) 9:41

Подключи сетевой принтер как локальный порт.
Lasciate ogni speranza, voi ch'entrate.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 17.10.2006 (Вт) 9:48

Попробуй переназначить LPT порт на сетевой принтер см.
NET USE /?

Что-то типа:
NET USE LPT1: \\compname\printername
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.10.2006 (Вт) 10:39

редирект не прокатит, прямая печать возможна только на локальный принтер

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

Сообщение alibek » 17.10.2006 (Вт) 10:55

Почему это не прокатит?
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.10.2006 (Вт) 10:57

попробуй :)
я думаю, что возможно поможет RedGate

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

Сообщение alibek » 17.10.2006 (Вт) 11:02

В свое время делал печать на сетевые лазерные принтеры из DOS-приложений (FoxPro) именно так и все работало.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.10.2006 (Вт) 11:23

очень странно, большинство лазерников вообще не поддерживает построчный вывод :?

а какая модель была лазерника :?:

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

Сообщение alibek » 17.10.2006 (Вт) 11:26

Построчный не поддерживали.
Но после того, как на принтер отправлена страница, они их печатали.
Принтеры были HP, я знаю, что всякие Canon обычно не поддерживают печать с DOS.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение alibek » 17.10.2006 (Вт) 11:29

Хотя... Давно это было, может быть я путаю сетевой принтер и локально подключенный лазерный. Попробую проверить.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.10.2006 (Вт) 11:36

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

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 17.10.2006 (Вт) 20:42

Честно признаюсь -- я не знаю что такое построчная печать.
Но если говорить про печать из дос-приложений, то у нас многие сотрудники для работы с текстовыми файлами почему-то предпочитают MIM (старый такой досовский текстовый редактор - Микромир). Так вот он печатает на LPT, и чтобы заставить его печатать на сетевой принтер помогает только выполнение NET USE LPT1. Причем после этого печатает даже на сетевые лазерники HP без проблем.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 18.10.2006 (Ср) 9:25

А если установить тип бумаги -Рулон? Может тут поискать?
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

rodnoi
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 24.06.2004 (Чт) 12:13

Сообщение rodnoi » 18.10.2006 (Ср) 12:26

Спасибо за ответы.Net use работает.Но возможно ли без Net USe,т.к
работает код
Open "\\имя комп\EpsonFx" For Output As # где
EpsonFx -Имя сетевого принтера

но дело в том,что в этом случае имя принтера(сетевого) не соответствует имени, которое получаем из коллекции Printers.DeviceName или ,используя API функцию EnumPrinters
Имя сетевого принтера можно изменить и оно запишется в реестр.
Может кто знает,как получить имя сетевого принтера.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.10.2006 (Ср) 12:32

http://vbnet.mvps.org/index.html?code/network/netshareenum.htm

вот еще варианты:

LDAP пример от микрософта:
http://www.microsoft.com/technet/scriptcenter/guide/sas_prn_wize.mspx

и кое-что еще
Вложения
Printers Enum.rar
(5.91 Кб) Скачиваний: 48

rodnoi
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 24.06.2004 (Чт) 12:13

Сообщение rodnoi » 19.10.2006 (Чт) 10:45

Konst_One, спасибо, но не получается у меня определить сетевые имена принтеров,может знает кто ссылку на код?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.10.2006 (Чт) 10:55

я же выложил 4 варианта, как это можно сделать :shock:
ни один не подошел :?:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.10.2006 (Чт) 10:59

http://www.visualsoftru.com/netshare.asp
просканируй свою сеть на наличие расшаренных ресурсов и проверь, что у тебя не так

rodnoi
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 24.06.2004 (Чт) 12:13

Сообщение rodnoi » 19.10.2006 (Чт) 14:17

Пример не дает сетевого имени,т.е. такая же картина,как и раньше,т.е там указывается не то имя принтера,показывается имя как и в Printers.DeviceName, а мне нужно сетевое.Это имя указывается во вкладке Доступ(Принтеры и факсы-Свойства-Сетевое имя) вот это имя как достать?Очень надо, помогите, люди!

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.10.2006 (Чт) 14:59

вы путаете что-то, все примеры выдают имя расшаренного принтера :!:
а вот то, что вы хотите, это как раз не то :shock:

откройте закладку Printers на сететвом компьютере, где ваш принтер установлен. затем правой кнопочкой и откройте его свойства. на второй закладке свойств (Sharing) вы найдете как раз сетевое имя (Shared As...) вашего принтера :!:

rodnoi
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 24.06.2004 (Чт) 12:13

Сообщение rodnoi » 20.10.2006 (Пт) 16:41

Konst_One спасибо огромное,разобрался,а проблему решил с помощью функции EnumPrinters


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

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

Сейчас этот форум просматривают: Google-бот, Mail.ru [бот] и гости: 17

    TopList