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

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

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


exero ©   (2008-03-21 15:07:00) 

Кто нибудь печатал с помощью KOLPrinters изображения? Если да, то выложте, пожалуйста, кусочек кода, а то у меня через Printer.Canvas.CopyRect что-то не получается.


exero   (2008-03-24 13:36:00) [1]

Спасибо, все работает.


mdw   (2008-03-24 12:52:00) [2]

http://www.kolnmck.ru/components/files_graphics.shtml


exero   (2008-03-24 07:44:00) [3]

2 mdw: что-то я у себя не нашел  PPaintMetafile...


exero   (2008-03-21 17:42:00) [4]

Огромное спасибо! Вроде все понятно. В понедельник буду пробовать.


mdw   (2008-03-21 17:14:00) [5]

Это я кусок выдрал из программы, причесал слегка, для понятности, но не то конца, думаю разберешься.


mdw   (2008-03-21 17:13:00) [6]

Вообще можно полностью формировать страницу, а потом ее целиком уже печатать....

......
   PaintMetafile: PPaintMetafile;
   Image: PBitmap;
   
begin
   PaintMetafile:= NewPaintMetafile;
   try
     Scale:= AScale;
     W:= Printer.PageWidth;
     H:= Printer.PageHeight-Round(ABottom/25.4 * Printer.PixelsPerInchX);

     Printer.Title:= Title;
     Printer.BeginDoc;

     Printer.NewPage;

     PaintMetafile.BeginPaint(0, 0, Printer.Handle);
     
     Image.StretchDraw(PaintMetafile.Canvas.Handle, MakeRect(Line.Left, Top, Line.Left + Image.Width, Top + Image.Height));
     PaintMetafile.Canvas.Pen.Color:= PenColor;
     PaintMetafile.Canvas.MoveTo(L, b);
     PaintMetafile.Canvas.LineTo(W, b);

     PaintMetafile.EndPaint;

     PaintMetafile.Draw(Printer.Handle, 0, 0);

     Printer.EndDoc;
   finally
     PaintMetafile.Free;
   end;
end;


exero   (2008-03-21 16:50:00) [7]


>  А если "завернуть" его в метафайл, то печатается на раз!

А можно немножко поподробнее по процедуре "заварачивания"?


mdw   (2008-03-21 15:55:00) [8]

Печатать изображения лучше через метафайл, иначе картинки могут не печататься или криво печататься и т.д. Например, если у принтера включен режим экономии тонера\чернил, то простой битмап может вообще не напечататься.  А если "завернуть" его в метафайл, то печатается на раз!
Я просто, в свое время польшой "интим" поимел, выводя BMP-хи на принтер, то с одной машины печатается, а с другой нет, то через раз печатае...


Наверх

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