如何在C#打印文档中打印文本框长文本(打印多行)

时间:2015-07-22 11:42:59

标签: c# printing

文本框文本文本将显示类似的内容(例如,仅有四十七万九千三百二十二美分)。我正在使用以下行来打印文本。

g.DrawString(" " + cnv_txt.Text, new Font("Arial", 16, FontStyle.Regular), Brushes.Black, new Point(72, 144));

将整个文本打印成一行。但在我的打印纸中,线长在10cm并且有三条线。所以这个文字不能打印一行。我需要将这些文本分成三行。我怎样才能做到这一点。 (我只显示一个示例文本。它可以更改,因为它是转换后的文本)

2 个答案:

答案 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