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

Вниз

Printer.Canvas с LOGPIXELSX <> LOGPIXELSY, что с Pen.Width ?   Найти похожие ветки 

 
GuAV ©   (2005-10-30 17:02) [0]

Для печати на принетере использую следующую последовательность операций

PrinterDialog
Вызов GetDeviceCaps с параметрами LOGPIXELSX и LOGPIXELSY
BeginDoc
Рисование на Printer.Canvas с учётом значений GetDeviceCaps
EndDoc

Однако, при использовании пера (TPen) выходит, что нужно задать различную Width для горизонтальных и вертикальных линий. В то же время, фигуры, такие как Rectangle, Ellipse, рисуются одной коммадной GDI, и, соответственно, одним пером. Как задавать ширину линий в этом случае, есл нужна постоянная ширина линии ? И что будет, если на этот принтер воспроизвести метафайл, записанный с одинаковым разрешением по осям ?

Подскажите пожалуйста, существует ли следующая проблема, и если да, то как с ней бороться, если нет - почему.


 
GuAV ©   (2005-11-01 01:06) [1]

Мне ответил Peter Below в
borland.public.delphi.graphics
, тема
Printing via Printer.Canvas - what"s for Pen.Width, if LOGPIXELSX<>LOGPIXELSY ?

Решение:
Принтеры с LOGPIXELSX <> LOGPIXELSY существуют.
Проще всего забыть о пересчёте координат вручную, и преобразовывать через
Coordinate Space and Transformation Functions
, в частности
SetMapMode(Printer.Canvas.Handle, MM_HIMETRIC);
, тогда проблема учёта LOGPIXELSX и LOGPIXELSY будет переадресована Windows.



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
1-1133800282
Andrey.Ru
2005-12-05 19:31
2006.01.08
Как TIMAGE с рисунком сделать полупрозрачным?


2-1135114470
Gena
2005-12-21 00:34
2006.01.08
Прошу помочь очень хочется из Delphi7 запустить мастера печати


11-1116426061
Владимир Кладов
2005-05-18 18:21
2006.01.08
инициализация Color в MCK


14-1134438087
fester
2005-12-13 04:41
2006.01.08
ТАУ


14-1134578163
Pazitron_Brain
2005-12-14 19:36
2006.01.08
Химия