![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
термо-принтер [D6, Win95/98]
МАРАТ © (2002-01-23 09:27:00)Мастера!
У меня такой вопрос, у меня есть рисунок (созддается в процессе программы) на компоненте Image1 и т.д., как мне его послать на печать (термо-принтер BZB-2).
Фэ (2002-01-23 15:04:00) [1]Правильно делает, что ругается.
Определи его вот так
procedure DrawImage(Canvas: TCanvas; DestRect: TRect; ABitmap: TBitmap);
var
Header, Bits: Pointer;
HeaderSize: Integer;
BitsSize: Longint;
begin
GetDIBSizes(ABitmap.Handle, HeaderSize, BitsSize);
Header := MemAlloc(HeaderSize);
Bits := MemAlloc(BitsSize);
try
GetDIB(ABitmap.Handle, ABitmap.Palette, Header^, Bits^);
StretchDIBits(Canvas.Handle, DestRect.Left, DestRect.Top,
DestRect.Right, DestRect.Bottom,
0, 0, ABitmap.Width, ABitmap.Height, Bits, TBitmapInfo(Header^),
DIB_RGB_COLORS, SRCCOPY);
finally
MemFree(Header, HeaderSize);
MemFree(Bits, BitsSize);
end;
end;
МАРАТ (2002-01-23 12:10:00) [2]Фэ !
Дельфи ругается что неопределен
DrawImage
Фэ (2002-01-23 10:54:00) [3]Printer.BeginDoc;
DrawImage(Printer.Canvas, Rect(0, 0, printer.pagewidth, printer.pageHeight), Image1.Picture.Bitmap);
Printer.EndDoc;
Для сохранения пропорций надо вычислить правильные width и height.
Если у термопринтера есть драйвер под Win - то все в порядке.
Если нет, то придется разлагать картинку по линиям и посылать raw-поток на принтер в соответствии с его системой команд.