Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: CL | DM;

Вниз

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

 
Weare ©   (2002-10-24 17:43) [0]

Уважаемые мастера, подскажите пожалуйста как можно при помощи стандартного объекта TPrinter вывести на печать рисунок в формате
TJpegImage в определленную область(Rect).
Вот два аналогичных кода программы, где печать рисунка в формате TBitMap проходит хорошо, а в формате TJpegImage выходит просто белый лист, причем ничего не ругается:

Bmp:= TBitMap.Create;
Bmp.LoadFromFile("konvert.jpg");

Printer.BeginDoc;
Printer.Canvas.StretchDraw(Rect(0,0,Printer.PageWidth,Printer.PageHeight),Bmp);
Printer.EndDoc;


Jpg:= TJpegImage.Create;
Jpg.LoadFromFile("konvert.jpg");

Printer.BeginDoc;
Printer.Canvas.StretchDraw(Rect(0,0,Printer.PageWidth,Printer.PageHeight),Jpg);
Printer.EndDoc;

Может это происходит из-за того, что у TJpegImage нету св-ва Canvas, но я же вывожу не на конву TJpegImage"а, а на конву принтера. Что подскажите, ведь мне для ускорения вывода на печать необходимо использовать TJpegImage, т.к файлы этого формата меньше по размеру?


 
drpass ©   (2002-10-24 18:03) [1]

Ну сделай так:
Bmp:= TBitMap.Create;
Jpg:= TJpegImage.Create;
Jpg.LoadFromFile("konvert.jpg");
Bmp.Assign(jpg);
Printer.BeginDoc;
Printer.Canvas.StretchDraw(Rect(0,0,Printer.PageWidth,Printer.PageHeight),bmp);
Printer.EndDoc;
Но "ускорение вывода на печать" с помощью формата JPEG - это полнейший бред


 
Weare ©   (2002-10-24 18:11) [2]


> drpass ©
> Но "ускорение вывода на печать" с помощью формата JPEG -
> это полнейший бред

Почему? Ведь файл формата bmp занимает у меня 31Mb, а уже отконвертированный в jpg - 1.6Mb. Собствено поэтому и принтер долго "думает" перед отправкой на печать, разве не так или я что-то недопонимаю в процедуре вывода на печать.
Если не так объясни, плиз.


 
777 ©   (2002-10-24 18:24) [3]


> файл формата bmp занимает у меня 31Mb, а уже отконвертированный
> в jpg - 1.6Mb

jpg - грубо говоря сжатый bmp, только и всего, а
на принтер при печати bmp и при печати jpg выводится
одинаковое количество точек (масштаб -то изображения один),
к тому же при работе с jpg тратится время на распаковку.



 
Weare ©   (2002-10-25 10:21) [4]

Спасибо за ответы, но может кто поскажет как же мне тогда увеличить скорость вывода на печать. Я сначала вывожу этот графический рисунок, а затем идет много (до 50) операторов Printer.Canvas.TextOut.


Printer.BeginDoc;
Printer.Canvas.StretchDraw(Rect(-60,-105,4847,6882),Bmp);
Printer.Canvas.TextOut(3600,665,Edit1.Text);
Printer.Canvas.TextOut(685,1000,Edit2.Text);
Printer.Canvas.TextOut(4272,995,Edit3.Text);
Printer.Canvas.TextOut(1805,1320,Edit4.Text); Printer.Canvas.TextOut(2565,1500,Edit5.Text);
...
Printer.EndDoc;

Может есть какой-то другой способ выводить все это на печать?



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

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
14-11482
Opuhshii
2002-10-14 08:40
2002.11.04
A-a-a-a-a-а (крик души), Cranberry,


1-11278
Шурик Ш
2002-10-23 12:12
2002.11.04
Подскажите компонент


1-11332
DN
2002-10-24 11:26
2002.11.04
Неободимо удалить строку из MEMO,


1-11287
Krez
2002-10-23 11:48
2002.11.04
Установка нового компонента


3-11073
Prok12
2002-10-15 13:45
2002.11.04
Delphi 7: про доступ к БД InterBase через компоненты dbExpress