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

Вниз

Преобразование координат на принтере   Найти похожие ветки 

 
Jet ©   (2005-07-27 17:19) [0]

Привет всем! возникла проблема: Есть напечатанный лист  (формат 12,5 Х 18 см.) с размещенными на нем реквизитами и пустыми местами, куда надо впечатывать введенные значения. Необходимо на принтере произвести печать так, чтобы значения напечатались именно в этих местах - заполнить форму. Печать произвожу с пом. textout(dc,x,y,"abc") Проблема в том что x и y - в пикселях, а координаты мест для печати - мм. Пробовал печать несколько линий с известными координатами в пикселях, затем замерять их координаты с пом. линейки и находить коэфициент для преобразования (k=Pixel/mm) - работает на небольших расстояниях (с точностью до мм), а на больших отрезках почему то данные коэфициенты получаются разными, хотя по идее они должны быть одинаковыми, подскажите пожалуйста как правильно по известным координатам в мм, получить координаты в пикселях, по которым можно печать в нужных местах листа?


 
Джо ©   (2005-07-27 18:01) [1]

Примени функцию GetDeviceCaps к DC принтера.
LogPixelsX := GetDeviceCaps (Printer.Canvas.Handle, LOGPIXELSX);
LogPixelsY := GetDeviceCaps (Printer.Canvas.Handle, LOGPIXELSY);

Соответственно, получишь количество пикселей на дюйм на реальном устройстве по ширине/высоте. Пересчитываешь в пиксели на см и - вуаля - имеешь коэффициэнты по горизонтали/вертикали.
А ошибка в коэфф. у тебя - ты не учитываешь погрешности измерения и прибора (линейки) :)


 
Суслик ©   (2005-07-28 11:03) [2]

еще полезные параметры функции GetDeviceCaps: PHYSICALOFFSETX и PHYSICALOFFSETY - непечатные поля слева и сверху.



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

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

Наверх




Память: 0.47 MB
Время: 0.045 c
8-1115289314
BasiL_666_
2005-05-05 14:35
2005.09.18
помогите хоть чемнибудь.....


3-1123222559
Бульбаш
2005-08-05 10:15
2005.09.18
Изменение курсора в процессе вставки...


14-1124445637
Gydvin
2005-08-19 14:00
2005.09.18
эл. печь электра 1001-м


1-1124262559
Найти
2005-08-17 11:09
2005.09.18
drag&drop в TListBox


3-1123486533
Beginner0
2005-08-08 11:35
2005.09.18
Просмотр через HTML?