Печать из RichTextBox

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

Печать из RichTextBox

Сообщение basicom » 11.06.2003 (Ср) 11:18

В RichTextBox выводится отчёт, затем на принтер, установленный по умолчанию:
Printer.Print MyForm.RichTextBox.Text
Printer.EndDoc
Результат:
1.Матричный типа LX-300 печатает тоько первую страницу, если не рулонная бумага.
2.Лазерный типа Canon LBP-810 из W98 печатает нормально, а из W95 только первый лист, а остальные пустые
Кто встречался с этим плиз help!
Может на страницы как разбить и поочереди - подскажите если не в ломы :(

John_mc
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 112
Зарегистрирован: 15.06.2002 (Сб) 6:18
Откуда: Russia, Новосибирск

Сообщение John_mc » 11.06.2003 (Ср) 12:47

Сойдёт такое решение проблемы?

Перенеси содержимое в Word, а из Word'a и печатай:

comGen.CancelError = True
On Error GoTo ОбработкаОшибки
With comGen
.ShowPrinter
.PrinterDefault = True
End With
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
With objWord
.Documents.Open FileName:=ИмяФайла
.ActiveDocument.PrintOut
Do While objWord.BackGroundPrintingStatus <> 0
DoEvents
Loop
.Quit
End With
Set objWord = Nothing
Exit Sub
ОбработкаОшибки:
If Err.Number <> cdlCancel Then
MsgBox "Произошла ошибка " & Err.Description
End If

basicom
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 20.05.2003 (Вт) 10:10
Откуда: Екатеринбург

Сообщение basicom » 11.06.2003 (Ср) 13:07

К сожалению нет :(
На машине кроме W95, программы и дров ничего нет-Flash 256MB

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 11.06.2003 (Ср) 13:15

А что, RTB.SelPrint метод не подходит? Получаем DC принтера, потом выделяем полностью весь текст в боксе и все.

basicom
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 20.05.2003 (Вт) 10:10
Откуда: Екатеринбург

Сообщение basicom » 16.06.2003 (Пн) 7:37

А как программно выделить весь текст в RTB?

basicom
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 20.05.2003 (Вт) 10:10
Откуда: Екатеринбург

Сообщение basicom » 16.06.2003 (Пн) 10:04

RayShade: Спасибо за помощь!
И вправду если ничего не выделять в RTB, то печатает всё по умолчанию и это главное.
P.S. Глаза не верят что делают руки! :shock:

basicom
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 20.05.2003 (Вт) 10:10
Откуда: Екатеринбург

Сообщение basicom » 16.06.2003 (Пн) 13:23

Ещё пара вопросов(у меня Help по RTB куда-то подевался):
1. Как выставить поля при печати из RTB, хотя бы левое?
2. Как изменить шрифт для печати, но чтобы на форме в RTB не менялся? (FontSize не работает) или ссылки на подробный Help ?
P.S. Точнее Printer.FontSize работает, если печатать так:
Printer.Print RTB.Text
но если выделенный текст:
RTB.SelPrint (Printer.hDC)
то печатает шрифтом RTB, а я хочу чтобы в RTB была 8-я кегля, а на бумаге 12 или 14 :?

basicom
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 20.05.2003 (Вт) 10:10
Откуда: Екатеринбург

Сообщение basicom » 17.06.2003 (Вт) 10:51

Непонятно почему, но через ShowFont тоже не работает постановка шрифтов?
Help me programmers

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 17.06.2003 (Вт) 10:59

Ты по-моему хочешь невозможного :) У тебя будет всегда одна кегля и на бумаге и в самом RTB.

cg_ck
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 11.06.2003 (Ср) 12:02
Откуда: Riga(Latvia)

Сообщение cg_ck » 19.06.2003 (Чт) 13:57

Смею посоветовать тебе создать два элемента? оди для отображения на форме? другой аналогичный для печати. Что бы изменить шрифт программно, выдели его программно и используй(напряг мозгу, могу и ошибатся) .selfont = ...
Точно не помню, когда то как-то так делал.
Ходит по лесу хомяк, хищный маленький дурак...


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

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

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

    TopList