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

Вниз

Распечатка изображения   Найти похожие ветки 

 
Destroyer   (2002-05-20 12:43) [0]

Необходимо распечатать изображение. Делаю:
var ScaleX, ScaleY: Integer;
R: TRect;
begin
if PrintDialog.Execute then
begin
Printer.BeginDoc;
ScaleX:=Trunc((GetDeviceCaps(Printer.Handle,logPixelsX)*MainBitmap.Width)/PixelsPerInch);
ScaleY:=Trunc((GetDeviceCaps(Printer.Handle,logPixelsY)*MainBitmap.Height)/PixelsPerInch);
R:=Rect(0,0,ScaleX,ScaleY);
Printer.Canvas.StretchDraw(R,MainBitmap);
Printer.EndDoc;
end;
end;
В итоге вылазит пустой лист. Помогите понять, где ошибка, пожалуйста


 
Song ©   (2002-05-20 12:48) [1]

...
ScaleX:=GetDeviceCaps(Printer.Handle,logPixelsX) div PixelsPerInch);
ScaleY:=GetDeviceCaps(Printer.Handle,logPixelsY) div PixelsPerInch);
R:=Rect(0,0,MainBitMap.Width*ScaleX,MainBitMap.Height*ScaleY);
...

... и всё пучком... :)


 
Destroyer   (2002-05-20 12:53) [2]

>Song
Э, нет, не пучком...Тоже пустой лист. А вообще-то учет ширины и высоты картинки уже сделан при определении ScaleX и ScaleY


 
Miwa ©   (2002-05-20 13:21) [3]

StretchDraw - в хелпе написано, что он зависит от типа принтера и вааще не рекомендуется для работы, а вместо него типа юзайте хэндл канваса принтера. Кажись так... Если честно, буквально вчера (ммм.... тоесть один сон назад ;о)) пробовал вывести таким макаром рисунок - так ничего и не вышло. :о(


 
Destroyer   (2002-05-20 13:25) [4]

Но в другой программе этот StretchDraw работает, только что проверил, только там я вывожу на печать содержимое TImage. А тут пробовал и через канвас принтера рисовать - не получается...


 
Song ©   (2002-05-20 14:25) [5]

А какой тип MainBitMap?


 
Destroyer   (2002-05-21 07:15) [6]

MainBitmap: TBitmap;

но это не суть важно...потому что даже если пытаюсь рисовать прямо на канве принтера, все равно не рисует, выдает пустой лист.


 
Destroyer   (2002-05-21 07:34) [7]

Вот еще интересный момент: если перед распечаткой MainBitmap сохранить в файл, потом загрузить его в TImage и выводить на принтер содержимое этого TImage, то печатает нормальное изображение.



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

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

Наверх




Память: 0.48 MB
Время: 0.008 c
1-97293
Новенький в Делфи
2002-05-18 23:38
2002.05.30
Как определить индекс массива


3-97112
Cola
2002-05-04 21:39
2002.05.30
DBGridEH


4-97459
[HDD]John
2002-03-28 13:52
2002.05.30
Исправляюсь: имитация нажати КЛАВИШИ ТАВ


14-97404
MBo
2002-04-22 13:58
2002.05.30
Ну совсем несложно.


3-97136
agrig
2002-05-01 11:59
2002.05.30
Что значит