2014-10-20 81 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;