![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Форма больше экрана, как её пустить на печать целиком? [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);