【发布时间】:2019-02-19 09:33:09
【问题描述】:
有没有办法将DrawString 限制为指定的矩形?如果不合适,我希望字符串被截断(最好用省略号“...”)。
从 StackOverflow 上的其他问题和反复试验中,我已经能够让 PDFsharp 换行文本,但前提是它包含空格。
var stringToPrint = "m m m m m m m m m m m m";
var temp = gfx.MeasureString(stringToPrint, font);
var rect = new XRect(new XPoint(leftMargin + leftPush, topMargin + topPush),
new XPoint(leftMargin + page.Width / 2, topMargin + temp.Height));
var tf = new XTextFormatter(gfx);
gfx.DrawRectangle(XBrushes.Red, rect);
tf.DrawString(stringToPrint, font, XBrushes.Black, rect, topLeftStringFormat);
上面的代码有效,但正如我所说,只有当字符串包含空格时。在像var stringToPrint = "mmmmmmmmmmmm"; 这样的字符串上,它会写入整个字符串并继续越过矩形外的右侧边缘。
【问题讨论】: