Todos los generadores de informes que conozco, trabajan en twips ( 1 pulgada tiene 1440 twips si no recuerdo mal), ya que es una medida independiente del dispositivo (papel, impresora, pantalla, escaner). Para colmo de males, se tiene en cuenta la propiedad del Form PixelPerInch (varía al usar fuentes grandes o normales en windows).
Cuando trabajé con Reportman (la versión OpenSource), usé estas conversiones:
Código:
1440 twips 2.54 cms
twips_per_Inch = ------------ cms_per_Inch = ---------
1 Inch 1 Inch
72 pixels
pixels_per_inch = -----------
1 inch
-----------------------------------------------------------------------------}
Estas rutinas están hechas por mí (editado, porque me equivoqué antes):
Código Delphi
[-]
const
CMS_PER_INCHESS=2.54;
TWIPS_PER_INCHESS=1440;
POINTS_PER_INCHESS=72;
function PixelsToTwips(apixels:integer):integer;
begin
Result:=Round((APixels/(Screen.PixelsPerInch))* TWIPS_PER_INCHESS);
end;
function TwipsToPixels(atwips:integer):integer;
begin
Result:=Round((atwips *Screen.PixelsPerInch) / TWIPS_PER_INCHESS);
end;
Estas otras, son de ReportMan (Open Source):
Código Delphi
[-]
type
TRpTwips=integer;
function twipstoinchess(twips1:TRpTwips):double;
begin
Result:=twips1/TWIPS_PER_INCHESS;
end;
function twipstocms(twips1:TRpTwips):double;
begin
Result:=(twips1/TWIPS_PER_INCHESS)*CMS_PER_INCHESS;
end;
Te recomiendo (por el bien de tu salud mental

) uses siempre una sola unidad, todo en twips, y, si tienes que mostrar algo al usuario, entonces haces al conversión a pixels o pulgosos.
Saludos