我要求在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
类的实例。我想知道如何将此类的Height
和Width
属性转换为人体可读单位,如毫米。
答案 0 :(得分:1)
将Size
(以像素为单位)转换为"实际值"以毫米为单位,您需要一个额外的值:
dpi - 每英寸点数。
这应该由您的PDF类定义。只要您有此值,就可以计算出您想要的值:
const double milimetresPerInch = 25.4; // as one inch is 25.4 mm
double lengthInMilimeter = size.Width / dpi * milimetresPerInch;