Вниз
Скачать: CL | DM;

Печать bitmap на canvas принтера.   Найти похожие ветки 

← →
Дмитрий В. Белькевич ©   (2003-09-04 16:35) [0]

Переношу несколько bitmap нижеследующим способом. Иногда переносятся, иногда - нет (часть битмапов вообще не печатается). Входные параметры нормальные. Если ставить sleep(200) перед процедурой, то иногда легчает в зависимости от машины. Как я понимаю, где-то запускается асинхронный процесс, завершение которого нужно ждать. StretchDIBits всегда возвращает код успешнго завершения. Ну и как всегда, два вечных вопроса: кто виноват и что делать?

procedure PrintBitmap(Canvas: TCanvas; DestRect: TRect; Bitmap: TBitmap);
var
BitmapHeader: pBitmapInfo;
BitmapImage: Pointer;
HeaderSize: DWORD;
ImageSize: DWORD;
begin
GetDIBSizes(Bitmap.Handle, HeaderSize, ImageSize);
GetMem(BitmapHeader, HeaderSize);
GetMem(BitmapImage, ImageSize);
try
GetDIB(Bitmap.Handle, Bitmap.Palette, BitmapHeader^, BitmapImage^);
if StretchDIBits(Canvas.Handle,
DestRect.Left, DestRect.Top, // Destination Origin
DestRect.Right - DestRect.Left, // Destination Width
DestRect.Bottom - DestRect.Top, // Destination Height
0, 0, // Source Origin
Bitmap.Width, Bitmap.Height, // Source Width & Height
BitmapImage,
TBitmapInfo(BitmapHeader^),
DIB_RGB_COLORS,
SRCCOPY) = -1 then
ShowMessage(IntToStr(GetLastError));
finally
FreeMem(BitmapHeader);
FreeMem(BitmapImage);
end
end;


← →
KSergey ©   (2003-09-05 07:47) [1]

Смотреть было лень
Код вот отсюда работает точно.
http://doc.trecom.tomsk.su/Delphi/UnofficialDevelopersFAQ/pages/printe r.htm
Где-то в конце списка пример есть печати картинок.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
1-58610
Ragazor
2003-09-08 16:42
2003.09.18
Как програмится символ стрелка вниз, вверх....


14-58841
TButton
2003-08-31 19:34
2003.09.18
IE


14-58884
DDT
2003-08-28 14:57
2003.09.18
Кто какой клиент форума использует?


14-58832
Председатель комиссии
2003-08-30 19:17
2003.09.18
Мастера Delphi: опрос


1-58706
ЮРИЙ_К
2003-09-08 10:23
2003.09.18
Нестандартное размещение шапки на форме




   Наверх