Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Форма больше экрана, как её пустить на печать целиком? [D7, XP]


Alex7 ©   (2007-03-30 08:24:00) 

Форма больше экрана, как её пустить на печать целиком?
PRINT печатает только видимую часть. Что нужно добавить к PRINT?


Alex7   (2007-04-05 17:01:00) [1]

In DesignTime
1.Для формы Form1, которая по умолчанию, задал:
Font.Charset = Russian_charset,
Font.Color = clWinowText(уже был по умолчанию),
Font.Name = Times New Roman
Font.Size = 14

2.Interface
uses ..., Printers;
 
3.Положил Lable1 и Button1:
Lable1.Caption = 'Печать'

procedure TForm1.Button1Click(Sender: TObject);
begin
 Printer.BeginDoc;
 Printer.Canvas.StretchDraw(Printer.Canvas.ClipRect, GetFormImage);
 Printer.EndDoc;
end;

RunTime: OnClick - чистый лист бумаги из принтера.
Принтер HP Laser Jet 1018 Параметры принтера по умолчанию. К принтеру раньше вопросов не было.
Windows XP SP1, Delphi Version7 (Build 4.453)
Подробнее описать не сумею.
Пожалуй эту тему пора закрывать. Всем спасибо!


{RASkov}   (2007-04-05 15:50:00) [2]

> и на одной из кнопок написать

Всысле реализацию обработчика OnClick; ;)


{RASkov}   (2007-04-05 15:50:00) [3]

> Всысле

*Всмысле
не мой день :(


{RASkov}   (2007-04-05 15:48:00) [4]

> [6] Alex7 ©   (05.04.07 13:18)

Странно.... покажи полностью свой код, или попробуй на новом проекте еще раз вариант из [5]. Накидай на форму разных контролов и на одну из кнопок напиши обработчик из пятого поста... Опять чисто? Какой принтер? Какие его параметры? Вообщем фик знает у меня на струйнике S100 с параметрами по умолчанию все прекрасно распечатывается...
Можешь кинуть на тестовую форму Image и на одной из кнопок написать Image.Canvas.StretchDraw(Image.Canvas.ClipRect, GetFormImage);Что получилось?


Alex7   (2007-04-05 13:18:00) [5]

Нет, не WebBrowser. На форме  DBGrid-ы.
procedure TForm1.Button1Click(Sender: TObject);
begin
Printer.BeginDoc;
Printer.Canvas.StretchDraw(Printer.Canvas.ClipRect, GetFormImage);
Printer.EndDoc;
end;

выводят на принтер чистый лист.

Одно спасение :Clipboard.Assign(GetFormImage);
Берет в Clipboard.
Но печатать через Clipboard на столько криво, кривее не бывает.


{RASkov}   (2007-04-04 14:36:00) [6]

> выводят на принтер чистый лист.

Незнаю, вот сейчас у себя проверил:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Printer.BeginDoc;
 Printer.Canvas.StretchDraw(Printer.Canvas.ClipRect, GetFormImage);
 Printer.EndDoc;
end;

Все печатает. А что у тебя на форме? Не WebBrowser?


Alex7   (2007-04-04 11:48:00) [7]

> RASkov   (02.04.07 16:47) [3]

Спасибо большое за этот ответ и за другой(дополнение к другому моему вопосу). Вместе с тем
Printer.Canvas.Draw(x, y, GetFormImage);
Printer.Canvas.StretchDraw(Printer.Canvas.ClipRect, GetFormImage);
выводят на принтер чистый лист.
В Help по StretchDraw сказано: Do not use StretchDraw for bitmaps.
В ЛЮБОМ СЛУЧАЕ СПАСИБО ЗА ВНИМАНИЕ К НОВИЧКАМ!


{RASkov}   (2007-04-02 16:47:00) [8]

> [2] Alex7 ©   (02.04.07 12:40)

BeginDoc, EndDoc... Printer+F1


Alex7   (2007-04-02 12:40:00) [9]

Спасибо большое. Вместе с тем, видимо необходимо что-то ещё задать, т.к.

Printer.Canvas.StretchDraw(Printer.Canvas.ClipRect, GetFormImage);

выдает ошибку Eprinter.


RASkov   (2007-03-30 11:40:00) [10]

Printer.Canvas.Draw(x, y, GetFormImage);
Printer.Canvas.StretchDraw(Printer.Canvas.ClipRect, GetFormImage);


Наверх

Титульная страница Поиск, карта сайта Написать письмо