将Size.Width和Size.Height转换为毫米

时间:2014-10-20 11:44:11

标签: c# gdi+

我要求在PDF中测量文本长度,如果长度超过一定数量,则包裹该行。

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

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();
}

此Method的返回值是Size类的实例。我想知道如何将此类的HeightWidth属性转换为人体可读单位,如毫米。

1 个答案:

答案 0 :(得分:1)

Size(以像素为单位)转换为"实际值"以毫米为单位,您需要一个额外的值:
dpi - 每英寸点数。

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

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