Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.011 c
3-1123018005
makvell
2005-08-03 01:26
2005.09.18
Как записать RTF в поле таблицы Paradox?


3-1123502152
Roman9
2005-08-08 15:55
2005.09.18
перенос данных


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


14-1124970763
ArtemESC
2005-08-25 15:52
2005.09.18
Современные форматы файловых систем


6-1117186897
Ильичев С.А.
2005-05-27 13:41
2005.09.18
Status Bar Internet Explorer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский