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
Что я делаю не так?