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

本文关键字:打印 文本 文档 | 更新日期: 2023-09-27 18:04:05

文本框文本文本将显示如下内容,例如(Four hundred and seventy nine thousand三百二十二cents two five only)。我用下面一行打印文本。

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

它将整个文本打印成一行。但是在我的打印纸上,线长在10厘米,有三条线。所以这个文本不能打印成一行。我需要把这样的文本分成三行。我怎么能做到呢?(我只显示一个示例文本。可以更改,因为它是转换后的文本)

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

您应该能够使用Graphics.MeasureString获得字符串的长度,并通过拆分它来划分它

DrawString的一个重载需要一个边界框。这样可以自动换行。

从MSDN文章中,你可以添加一个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的方框内。

我尝试了这个链接,这是一篇很好的文章,答案是有效的。https://msdn.microsoft.com/en-us/library/system.drawing.graphics.measurecharacterranges (v =应用程序). aspx