gpt4 book ai didi

c# - 自动将文字换行到打印页面?

转载 作者:太空狗 更新时间:2023-10-29 18:06:59 44 4
gpt4 key购买 nike

我有一些打印字符串的代码,但如果字符串是这样的:“Blah blah blah”...并且没有换行符,则文本占据一行。我希望能够调整字符串的形状,使其自动换行到纸张的尺寸。

private void PrintIt(){
PrintDocument document = new PrintDocument();
document.PrintPage += (sender, e) => Document_PrintText(e, inputString);
document.Print();
}

static private void Document_PrintText(PrintPageEventArgs e, string inputString) {
e.Graphics.DrawString(inputString, new Font("Courier New", 12), Brushes.Black, 0, 0);
}

我想我可以算出一个字符的长度,然后手动换行文本,但如果有内置方法可以做到这一点,我宁愿那样做。谢谢!

最佳答案

是的,有 DrawString能够自动换行文本。您可以使用 MeasureString方法来检查指定的字符串是否可以完全绘制在页面上以及需要多少空间。

还有一个TextRenderer专门为此目的上课。

这是一个例子:

         Graphics gf = e.Graphics;
SizeF sf = gf.MeasureString("shdadj asdhkj shad adas dash asdl asasdassa",
new Font(new FontFamily("Arial"), 10F), 60);
gf.DrawString("shdadj asdhkj shad adas dash asdl asasdassa",
new Font(new FontFamily("Arial"), 10F), Brushes.Black,
new RectangleF(new PointF(4.0F,4.0F),sf),
StringFormat.GenericTypographic);

这里我指定了最大 60 像素作为宽度,然后测量字符串将给我绘制此字符串所需的大小。现在,如果您已经有了一个尺寸,那么您可以与返回的尺寸进行比较,看看它是被正确绘制还是被截断

关于c# - 自动将文字换行到打印页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018135/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com