Главная страница
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.042 c
14-1124449126
DiamondShark
2005-08-19 14:58
2005.09.18
Вот такая у нас была гроза


9-1116873712
iosif
2005-05-23 22:41
2005.09.18
Нужен пример OpenGL


3-1123231655
Elvis
2005-08-05 12:47
2005.09.18
DBGridEh забитый в ручную


1-1124891888
ArtemESC
2005-08-24 17:58
2005.09.18
Текст на Canvas


14-1124564841
romychk
2005-08-20 23:07
2005.09.18
T-mail