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

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

Печать изображений


Pavel ©   (2009-10-29 17:04:00) 

Имеется Image, с которого нужно распечать часть изображения.
Выполняю следующим образом:


 Printer.BeginDoc;
 BMap4:=TBitMap.Create;
 BMap4.Width:=ABS(xp4-xp1);
 BMap4.Height:=ABS(yp1-yp4);
 BitBlt(BMap4.Canvas.Handle, 0, 0, ABS(xp4-xp1), ABS(yp1-yp4), Image1.Canvas.Handle, xp1, yp4, SRCCOPY);
 r:=Rect(236, 354, round(image1.Width * c - 177), round(image1.Height * c));
 Printer.Canvas.StretchDraw(printer.Canvas.ClipRect,BMap4);
 Printer.EndDoc;


В резултате принтер выдает пустую страницу.
В чем может быть проблема?
Заранее блогадарю за ответы.


Омлет.   (2009-10-31 05:39:00) [1]

> Верно для TImage.

Верно для TCanvas.


Jeer   (2009-10-30 17:25:00) [2]


> Омлет ©   (29.10.09 18:57) [2]
>
> > [1] Jeer ©   (29.10.09 17:53)
> > GetDC(Image1.Canvas.Handle)
>
> Нет. Canvas.Handle уже и есть HDC.
>


Верно для TImage. Я глянул для своего случая, где печать TStringGrid и автоматически экстраполировал.
Вот там надо действительно GetDC(..)


Омлет   (2009-10-30 16:58:00) [3]

> [9] Pavel   (30.10.09 15:46)

Попробуй напечатать небольшое.


Pavel   (2009-10-30 15:46:00) [4]

А может ли быть что изображение, которое я вывожу на принтер не помещается в буфере принтера?


Anatoly Podgoretsky   (2009-10-30 12:31:00) [5]

> brother  (30.10.2009 11:20:07)  [7]

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


brother   (2009-10-30 11:20:00) [6]

> hp LaserJet 1010

отличный принтер! странно...


Pavel   (2009-10-30 11:16:00) [7]

hp LaserJet 1010


brother   (2009-10-30 11:02:00) [8]

> при выводе изображения на принтер

принтер хоть какой? может хитрые настройки?


Pavel   (2009-10-30 11:01:00) [9]

Проверил, изображение в файл сохрняется, при печати изображения в файл проблем не возникает. Проблема только при выводе изображения на принтер.


Омлет   (2009-10-29 19:03:00) [10]

> [0] Pavel   (29.10.09 17:04)

Поставьте перед Printer.EndDoc
 BMap4.SaveToFile('1.bmp);
И посмотрите, действительно ли там есть изображение.
А еще в дебаге стоит проверить printer.Canvas.ClipRect.


Омлет   (2009-10-29 18:57:00) [11]

> [1] Jeer ©   (29.10.09 17:53)
> GetDC(Image1.Canvas.Handle)

Нет. Canvas.Handle уже и есть HDC.


Jeer   (2009-10-29 17:53:00) [12]


> Image1.Canvas.Handle

GetDC(Image1.Canvas.Handle)


Наверх

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