Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.07;
Скачать: CL | DM;

Вниз

Как скопировать х.Canvas в Printer.Canvas?   Найти похожие ветки 

 
Геннадий ©   (2003-07-22 18:42) [0]

Приветствую!

Необходимо распечатать содержимое окна броузера. Как это выполнить? В нижеприведённом коде принтер печатает ПУСТУЮ страницу...


var
H : THandle;
DC : HDC;
Can : TCanvas;
begin
If not PrintDialog.Execute then Exit;
H:= WebBrowser.Handle;
DC:= GetDC(H);
Can:= TCanvas.Create;
Can.Handle:= DC;

Printer.BeginDoc;
Printer.Canvas.Handle:= Can.Handle;
Printer.EndDoc;

Can.Free;
end;



Подскажите, кто сталкивался.


 
Sandman25 ©   (2003-07-22 18:45) [1]

WebBrowser.PaintTo(Printer.Canvas.Handle, ...)


 
Sandman25 ©   (2003-07-22 18:47) [2]

Или что-то типа того. Только что в help нашел, никогда не использовал :)


 
Marser ©   (2003-07-22 21:10) [3]

printer.canvas.assign(x.canvas)


 
Геннадий ©   (2003-07-23 13:31) [4]

Sandman25 © (22.07.03 18:45)
WebBrowser.PaintTo(Printer.Canvas.Handle, ...)


Нет - чистый лист выходит...


procedure TPrintForm.PrintBitBtnClick(Sender: TObject);
var
H : THandle;
DC : HDC;
Can : TCanvas;
begin
If not PrintDialog.Execute then Exit;
H:= WebBrowser.Handle;
DC:= GetDC(H);
Can:= TCanvas.Create;
Can.Handle:= DC;

Printer.BeginDoc;
//Printer.Canvas.Handle:= Can.Handle;
WebBrowser.PaintTo(Printer.Canvas.Handle, 0, 0);
Printer.EndDoc;

Can.Free;
end;


 
BOA_KAA ©   (2003-07-23 14:09) [5]

> Marser © (22.07.03 21:10)
> printer.canvas.assign(x.canvas)

Вы бы сначала попробовали...

> PaintTo

F1: Call PaintTo to draw the control on a device context.
Как вы собираетесь нарисовать контрол на принтере?

Поробуйте использовать StretchBlt


 
REA ©   (2003-07-23 14:12) [6]

А у самого браузера нет печати? Имхо лучше будет.


 
Переяслов Григорий ©   (2003-07-23 14:17) [7]

А если Printer.Canvas := Can; ?


 
Геннадий ©   (2003-07-23 16:49) [8]

REA © (23.07.03 14:12)
А у самого браузера нет печати? Имхо лучше будет.


К сожалению, нет. Я не нашёл такого метода.



Переяслов Григорий © (23.07.03 14:17)
А если Printer.Canvas := Can; ?


Read only property, что б его! :))


 
Переяслов Григорий ©   (2003-07-23 17:56) [9]

Как так, я спокойно рисую на Printer.Canvas?
А если использовать его метод CopyRect?


 
Геннадий ©   (2003-07-24 14:54) [10]

Переяслов Григорий © (23.07.03 17:56)
Как так, я спокойно рисую на Printer.Canvas?
А если использовать его метод CopyRect?


Рисовать - можно. Но в данном случае необходимо отрисовать другой, уже подготовленный Canvas.


 
Переяслов Григорий ©   (2003-07-24 15:27) [11]

Так вот. Напиши процедуру рисования и передавай ей как параметр канву. И передавай ей потом через этот параметр канву компонента или канву принтера. Так у меня реализована возможность предварительного просмотра перед печатью. (пример содрал, кстати, из книжицы Тома Свана "Delphi 4. Библия разработчика").

К примеру.

procedure DrawPage (C : Canvas);
begin
. . .
C.Rectangle(...
. . .
end;

begin
DrawPage(Panel1.Canvas);
. . .
DrawPage(Printer.Canvas);
end.

Примерно вот так


 
BOA_KAA ©   (2003-07-24 15:59) [12]

> Геннадий © (23.07.03 16:49)

Да сделайте через StretchBlt


 
Геннадий ©   (2003-07-24 16:45) [13]

:)) Так не я рисую!

Я загружаю в компонент WebBrouser сохранённый HTML-файл. Он его отображает. Вот это отображение мне и надо распечатать.




BOA_KAA © (24.07.03 15:59)
> Геннадий © (23.07.03 16:49)

Да сделайте через StretchBlt


Сейчас посмотрю что за метод.


 
BOA_KAA ©   (2003-07-24 16:48) [14]

> Сейчас посмотрю что за метод.
Это API :-)


 
Геннадий ©   (2003-07-26 16:50) [15]

Не в ту степь я копаю... Canvas WebBrouser"а не содержит всей страницы - только выделенная часть (экономный, блин:) ).



Страницы: 1 вся ветка

Текущий архив: 2003.08.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
14-20699
vidiv
2003-07-23 13:23
2003.08.07
Почему PHP так сказал?


1-20569
odyssey
2003-07-24 09:56
2003.08.07
цвет шрифта в ячейке StrigGrid


14-20805
Феликс
2003-07-22 16:30
2003.08.07
Как же этот сайт называется?


1-20621
chs2r
2003-07-24 17:46
2003.08.07
Как сделать редактор с подсветкой синтаксиса


1-20500
Alex-21
2003-07-23 21:25
2003.08.07
?????? & c_1252.nls