Печать файла из VB6

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

Печать файла из VB6

Сообщение AlexanderL » 23.12.2004 (Чт) 10:33

Всем привет.

Подскажите, пожалуйста, как из vb послать файл на печать.
Как вариант, использовать shell() с указанием bat-ничка, в котором запускается печать этого файла. Но мне это не подходит.
Дело в том, что я програмно меняю настройки принтера (размер бумаги и ориентацию) с помощью OpenPrinter, DocumentProperties и т.д. Так вот если печатать так

Ret = StartDoc(hPrintDc, di)
Ret = StartPage(hPrintDc)
Ret = TextOut(hPrintDc, 0, 0, "печатаемый текст", <длина текста>)
Ret = EndPage(hPrintDc)
Ret = EndDoc(hPrintDc)
Ret = DeleteDC(hPrintDc)

то все ОК. А если запускать bat-ник, то установленные мной параметры принтера не применяются, естественно.

Поэтому вижу один выход - печатать файл прямо из VB.

Заранее очень благодарен!

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

Сообщение alibek » 23.12.2004 (Чт) 10:47

Какой файл? Текстовый?
Советую вместо TextOut использовать DrawText, чтобы не возится с переносом строк вручную.
Только использовать API совсем не обязательно. Можно обойтись и Printer.Print.
Lasciate ogni speranza, voi ch'entrate.

AlexanderL
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 23.12.2004 (Чт) 10:26

Печать файла из VB6

Сообщение AlexanderL » 23.12.2004 (Чт) 12:17

Файл TIF.
Через Printer у меня не получилось размер страницы поменять.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 23.12.2004 (Чт) 12:38

Эээ. Свойство PaperSize, насколько я помню, а если ты его кустом ставишь, то тогда Height / Width...

AlexanderL
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 23.12.2004 (Чт) 10:26

Печать файла из VB6

Сообщение AlexanderL » 23.12.2004 (Чт) 14:04

Да, так и делал. Просто, когда пробовал менять Width или Height, то они почему-то становились A4 всегда.
В принципе через API это нормально работает.

Кстати говоря, только что сделал печать TIF не батничком, а через Object. Все печатает, но установки принтера все равно сбрасываются, т.е. ему пофиг чт я там выше определял (размер бумаги и т.п.)

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

Сообщение Konst_One » 23.12.2004 (Чт) 18:01

это от драйвера конкретного принтера зависит, некоторые могут и не поддерживать

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

CDLG

Сообщение BV » 23.12.2004 (Чт) 21:19

Ну а никто не пробовал использовать CommonDialog? Там ведь есть (в ActiveX компоненте) такая вещь Cdlg.ShowPrint. :arrow:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 23.12.2004 (Чт) 22:36

Народ! Не юзайте CommonDialog! :roll: Юзайте API! :roll:


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList