文本框文本文本将显示类似的内容(例如,仅有四十七万九千三百二十二美分)。我正在使用以下行来打印文本。
g.DrawString(" " + cnv_txt.Text, new Font("Arial", 16, FontStyle.Regular), Brushes.Black, new Point(72, 144));
将整个文本打印成一行。但在我的打印纸中,线长在10cm并且有三条线。所以这个文字不能打印一行。我需要将这些文本分成三行。我怎样才能做到这一点。 (我只显示一个示例文本。它可以更改,因为它是转换后的文本)
答案 0 :(得分:0)
您应该可以使用 Graphics.MeasureString
来获取字符串的长度,然后将其拆分。
DrawString
的一个重载需要一个边界框。这应该自动包装你的文本。
从MSDN Article,您可以添加RectangleF
参数,以指定文本应约束到的边界框。它会自动换行。
所以你应该这样做:
g.DrawString(" " + cnv_txt.Text, new Font("Arial", 16, FontStyle.Regular), Brushes.Black, new Point(72, 144), new RectangleF(0f,0f,50f,50f);
这会将它保存在50x50的盒子里。
答案 1 :(得分:0)
我尝试了这个链接,这是一篇很好的文章,答案正在发挥作用。 https://msdn.microsoft.com/en-us/library/system.drawing.graphics.measurecharacterranges(v=vs.90).aspx