【问题标题】:How to print a textbox long text in C# print document (print multiple lines)如何在 C# 打印文档中打印文本框长文本(打印多行)
【发布时间】:2015-07-22 11:42:58
【问题描述】:

文本框文本文本将显示类似这样的内容,例如(仅 479322 美分 25)。我正在使用以下行来打印文本。

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

它将整个文本打印到一行中。但在我的打印纸中,行长为 10 厘米,共有三行。所以这个文本不能打印一行。我需要将这样的文本分成三行。我怎样才能做到这一点。 (我只展示了一个示例文本。它可以更改,因为它是转换后的文本)

【问题讨论】:

    标签: c# printing


    【解决方案1】:

    您应该能够使用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 的盒子中。

    【讨论】:

    • 您能否提供一个示例代码或任何我可以从中学习的链接。
    • 提供的代码行没有完成工作它不起作用
    【解决方案2】:

    我尝试使用此链接,它是一篇很好的文章,答案很有效。 https://msdn.microsoft.com/en-us/library/system.drawing.graphics.measurecharacterranges(v=vs.90).aspx

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多