Главная страница
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.05 c
3-1123157438
VitaWED
2005-08-04 16:10
2005.09.18
SQL и память


14-1124556764
ArtemESC
2005-08-20 20:52
2005.09.18
Соответствия команд ASM


4-1122018050
Denis
2005-07-22 11:40
2005.09.18
Можно ли динаически создать форму в чужом приложении?


6-1117434978
silvestr
2005-05-30 10:36
2005.09.18
Как изменить программно основной шлюз и DNS в настройках


4-1122293419
rigid
2005-07-25 16:10
2005.09.18
проблема Win API?