2014-10-20 86 views
2

我有要求测量在PDF中的文本长度,并包装线,如果长度超过一定的数额。转换Size.Width和Size.Height至毫米

我已经使用下面的代码来确定文本的长度(不确定它是否按预期工作,但我需要事先解决另一个问题)。

public static Size MeasureString(string s, Font font) 
{ 
    SizeF result; 
    using (var image = new Bitmap(1, 1)) 
    { 
     using (var g = Graphics.FromImage(image)) 
     { 
      result = g.MeasureString(s, font); 
     } 
    } 
    return result.ToSize(); 
} 

此方法的返回值是Size类的实例。我想知道如何将此类的HeightWidth属性转换为像毫米这样的可读单元。

回答

1

要转换Size,这是在像素,在milimeters“真正的人生价值”,你需要一个额外的值:
DPI - 每英寸的点数。

这应该由您的PDF类定义。只要你有这个值,你可以计算出你想要的值:

const double milimetresPerInch = 25.4; // as one inch is 25.4 mm 
double lengthInMilimeter = size.Width/dpi * milimetresPerInch;