Печать

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Печать

Сообщение xqz_me » 18.02.2006 (Сб) 21:41

Как распечатать на принтере картинку вверху посередине страницы и значение нескольких переменных с слевого краю (каждое значение на новой строчке)?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 18.02.2006 (Сб) 23:21

Надо представить себе что объект Printer является PictureBox'ом, следовательно можно использовать Picture, PaintPicture, Print - и чего тут непонятного. Чтобы лучше разобраться - нужен принтер, куча бумаги и свободного времени, - иначе получить опыт в работе с принтером нельзя.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.02.2006 (Вс) 13:40

Как тесты печатать, я разобрался. Терь такой вопрос. Нашёл в одной статье:
Однако основным методом для работы с печатью графических документов является другой метод. Этот метода называется PaintPicture. Рассмотрим его работу на примере.

Printer.PaintPicture objPic, 100, 100

Это строчка кода печатает предварительно загруженный графический объект objPic со смещением от начала страницы на 100 пикселей по горизонтали и вертикали.

Если вместо objPic поставить печать Picture1 или Image1, то принтер надолго задумывается (Spooling). Как правильно распечатать картинку (не важно откуда, из файла или из самой проги)

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

Сообщение Konst_One » 19.02.2006 (Вс) 14:55

objPic = IPictureDisp

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.02.2006 (Вс) 15:18

Что это значит?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.02.2006 (Вс) 15:34

Это значит что нужно передавать ссылку не на объект на на
Объект.Picture

в твоём случае Picture1.Picture или Image1.Picture
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.02.2006 (Вс) 17:48

Код: Выделить всё
Private Sub Command1_Click()
Dim objPrinter As printer
printer.PaintPicture Picture1.Picture, 100, 100
End Sub

После чего статус принтера становится Spooling (типа, обрабатывает перед печатью). Печатать не хочет. В Picture1 - небольшая bmp картинка.

Добавление: через 3:20 минут картинка всё-таки расмечаталась. Долговато как-то. Что делать?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.02.2006 (Вс) 17:55

xqz_me писал(а):расмечаталась.


а как эта же bmp-картинка расмечатается если её открыть Paint'ом и Ctrl+P.

и ещё. Ты принтер как-нибудь вообще настраиваешь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.02.2006 (Вс) 18:07

15 секунд (правая кнопка > print).
Принтер у меня настроен в системе. В vb только тот код, который я написал. Вообще у меня 2 принтера и vb печатает на установленном по умолчанию с его настройками.

Может, правиленее через imagelist печатать?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.02.2006 (Вс) 18:23

Private Sub Command1_Click()
Dim objPrinter As printer
printer.PaintPicture Picture1.Picture, 100, 100
End Sub


Я только не могу понять
Код: Выделить всё
Dim objPrinter As printer


______________________

Печатать через imagelist всё-равно, что хранить иконки в me.tag
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.02.2006 (Вс) 18:50

А вообще надо настроить принтер перед тем как печатать. (Ну там PaperBin, PaperSize, Zoom, PrintQulity, ITD)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение alibek » 19.02.2006 (Вс) 20:36

xqz_me писал(а):Добавление: через 3:20 минут картинка всё-таки расмечаталась. Долговато как-то. Что делать?

А Printer.EndDoc делать не пробовал?
Lasciate ogni speranza, voi ch'entrate.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.02.2006 (Вс) 21:18

А Printer.EndDoc делать не пробовал?

Гы.. Определённо помогает. Спасибо :)


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

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

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

    TopList