Главная страница
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.01 c
1-97331
Gumbert-Gumbert
2002-05-19 16:23
2002.05.30
Вопрос по функции: TTreeView.Items.AddObject(TTreeNode, S, Ptr)


3-97135
Taciturn
2002-05-04 22:17
2002.05.30
Как изменить значение поля Autoincrement?


3-97174
Oleg_er
2002-05-07 08:29
2002.05.30
длина строки


7-97428
Sasha9
2002-02-27 20:25
2002.05.30
Выключение HDD


1-97241
Smok_er
2002-05-20 22:09
2002.05.30
А как преобразовать строку %EB%EF%3E и т.д. в обычные символы?