DrvTextOut, координаты выводимого текста
От: Roman_123  
Дата: 09.11.07 16:30
Оценка:
DrvTextOut как вычислить реальные координаты выводимого текста?

Пишу драйвер принтера, который выводит данные в SVG файл. Перехватил функцию DrvTextOut

OEMTextOut(SURFOBJ *pso,
STROBJ *pstro,
FONTOBJ *pfo,
CLIPOBJ *pco,
RECTL *prclExtra,
RECTL *prclOpaque,
BRUSHOBJ *pboFore,
BRUSHOBJ *pboOpaque,
POINTL *pptlOrg,
MIX mix)

Вот так считаю координаты, где выводится строка на листе:

pptlOrg->y + pstro->rclBkGround.top;
pptlOrg->x + pstro->rclBkGround.left;

Координатная система начинается в левом верхнем углу и имеет размеры
pGdiInfo->ulHorzRes;//2550
pGdiInfo->ulVertRes;//3300

которые приходят в функции:

OEMEnablePDEV(PDEVOBJ pdevobj,
PWSTR pPrinterName,
ULONG cPatterns,
HSURF *phsurfPatterns,
ULONG cjGdiInfo,
GDIINFO *pGdiInfo,
ULONG cjDevInfo,
DEVINFO *pDevInfo,
DRVENABLEDATA *pded)



Но расстояние между строками и фрагментами текста в распечатанном документе, не соответствуют оригиналу.
вот так выглядит оригинал:
http://www.atlantis-bochum.de/toprint.GIF

а вот то, что получается после печати:
http://www.atlantis-bochum.de/printed.GIF
или
http://www.atlantis-bochum.de/printed.svg

Что я делаю не так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.