![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Принтер... последний вопрос ;) [D5, Win95/98]
Коляныч © (2003-01-07 09:44:00)итак сабж ;)
идея такая...
xl:=600; //размеры картинки
yl:=825;
pw:=printer.pagewidth;
ph:=printer.pageheight;
yx:=ph/yl; //коэфициент масшабирования
xc:=yx*xl;
yc:=yx*yl;
if xc>pw then xc:=pw;
image1.canvas.copyrect(rect(0,0,xl,yl)....) - копирую на имагу
printer.canvas.streigtdraw(rect( 0,0,xc,yc),image1.picture.graphic);
так вот - в результате получаю, что картинка не влазит ;( причём прилично... по иксу нарисовало 500 вместо 600, по y не считал... помогите!!! не могу понять своей ошибки...
REA (2003-01-08 12:40:00) [1]А еще картинки (в D7 не проверял) stretchdraw фигово рисует на принтер. Мне пришлось срисовать функцию, которая в Delphi сделана для PrintForm, но и она не всегда срабатывает (на всех принтерах, разрешениях, глубине цвета и т.п.)
Коляныч (2003-01-08 09:39:00) [2]Спасибо... сегодня же опробую ;)
Ещё идеи есть?
MXA (2003-01-08 00:22:00) [3]а попробуй
...
pw:=printer.pagewidth-2*Printer.Margins.cx;
ph:=printer.pageheight-2*Printer.Margins.cy;
...
Song (2003-01-07 09:57:00) [4]PageWidth вернёт вам размер растра, а не логические размеры принтера. Надо узнавать характеристики принтера через GetDeviceCaps()