Главная страница
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.023 c
3-11065
Марина
2002-10-15 10:34
2002.11.04
Memo-поля в DBGrid


1-11256
I_S_
2002-10-23 06:59
2002.11.04
DBGridEh, раскраска строк.


14-11465
Neox
2002-10-11 09:11
2002.11.04
Email клиент: какой?


1-11203
Solovey
2002-10-23 01:00
2002.11.04
Перевод числа из 16-ричной системы в 10-чную.


3-11059
Duce
2002-10-14 14:28
2002.11.04
Возврат курсора TQuery в прежнюю позицию после обновления