Главная страница
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.043 c
14-1124453310
_Lex_
2005-08-19 16:08
2005.09.18
Новосибирск MP


5-1099403917
DmitryA
2004-11-02 16:58
2005.09.18
Блокировка автоматического скроллинга формы


14-1124859709
IfBeginThenEnd
2005-08-24 09:01
2005.09.18
Режим ядра


3-1123485949
Zaero
2005-08-08 11:25
2005.09.18
При изменении информации, размер *.mb файла не уменьшается!


1-1125042814
Марто
2005-08-26 11:53
2005.09.18
Delphi вылетает при попытке открыть проект