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

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

 
REA ©   (2003-01-17 16:08) [0]

Хочу напечатать сабж на принтер. Не видел ли кто рабочей процедуры печати на принтер TGraphic?
Я конечно сделал кое-как, но печатает не всегда и приходится сначала в Bitmap переводить, а дальше из него с помощью StretchDIBits. Хочется сделать чтобы стабильно работало для всех палитр, принтеров, глубины цвета и т.п.


 
REA ©   (2003-01-17 17:41) [1]

Неужели никто не печатал картинки или вопрос неуместен?
Сорри за повтор.


 
LongIsland ©   (2003-01-17 17:57) [2]

procedure TfmMain.mmPrintClick(Sender: TObject);
var
Info: PBitmapInfo;
InfoSize, ImageSize: DWord;
Images: Pointer;
begin
if not dgPrint.Execute then Exit;
Printer.BeginDoc;
GetDIBSizes(Image.Picture.Bitmap.Handle, InfoSize, ImageSize);
Info:=AllocMem(InfoSize);
try
Images:=AllocMem(ImageSize);
try
GetDIB(Image.Picture.Bitmap.Handle, 0, Info^, Images^);
StretchDIBits(Printer.Canvas.Handle,
0, 0, Printer.PageWidth, Printer.PageHeight,
0, 0, Image.Width, Image.Height,
Images, Info^, DIB_RGB_COLORS, SRCCOPY);
finally
FreeMem(Images, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
end;
Printer.EndDoc;
end;

Содержимое TImage я печатаю таким образом.


 
rea ©   (2003-01-20 16:19) [3]

Я печатаю почти так же. Печатается не всегда и не все.

Canvas.Lock;
With Canvas Do
Try
Bits := Bmp.Handle;
GetDIBSizes(Bits, InfoSize, ImageSize);
Info := AllocMem(InfoSize);
Try
Image := AllocMem(ImageSize);
Try
GetDIB(Bits, 0, Info^, Image^);
With Info^.bmiHeader Do
Begin
DIBWidth := biWidth;
DIBHeight := biHeight;
End;
StretchDIBits(Handle, rc.Left, rc.Top, rc.Right-rc.Left, rc.Bottom-rc.Top, 0, 0,
DIBWidth, DIBHeight, Image, Info^, DIB_RGB_COLORS, SRCCOPY);
Finally
FreeMem(Image, ImageSize);
End;
Finally
FreeMem(Info, InfoSize);
End;
Finally
Canvas.Unlock;
End;



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

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



Память: 0.45 MB
Время: 0.011 c
3-96553
Samael6
2003-01-11 13:48
2003.01.30
Перенос программы на другой компьютер


14-97025
Tux
2003-01-12 19:31
2003.01.30
Об усыновлении


7-97062
kloksus
2002-11-17 15:42
2003.01.30
Работа с реестром


1-96683
Dor
2003-01-21 20:01
2003.01.30
Memo1


3-96617
vv_fran
2003-01-13 11:51
2003.01.30
Падение сервера FireBirrd 1.0.2.908 (FibPlus 4.77)




   Наверх