Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: 0.019 c
1-11259
Whippi
2002-10-23 10:05
2002.11.04
Ваабще ничего не понимаю, помогите разобраться


3-11127
alex_R
2002-10-15 15:27
2002.11.04
Как вызывать хранимые функции Oracle через ADO


6-11358
Rio
2002-09-04 10:27
2002.11.04
NMSmtp


7-11509
978658473
2002-09-01 12:59
2002.11.04
Моя программа+память.


1-11303
Ulikoff
2002-10-21 17:13
2002.11.04
MS OFFICE2000 & DELPHI




   Наверх