theo, I also got this problem
---------------------------------------
rozdzX:=drukarka.XDPI;
rozdzY:=drukarka.YDPI;
obliczX := round(rozdzX / 2.54);
obliczX := obliczX * 10;
obliczY := round(rozdzY / 2.54);
obliczY := obliczY * 10;
drukarka.Canvas.TextOut(obliczY, obliczX, 'PRINT TEST');
----------------------------------------
Now, First ObliczX gives me how many pixels is in 1cm and in next increasing pixels number * 10 so it's 10cm.
But when I print this on a paper 'PRINT TEST' is 10,5cm from TOP, and 13,5cm from LEFT.
There should be the same space from TOP/LEFT while ObliczX and ObliczY has the same value..... Y/X DPI of printer is 600dpi.