gpt4 book ai didi

c# - 旋转文本以进行打印

转载 作者:太空狗 更新时间:2023-10-29 17:31:06 24 4
gpt4 key购买 nike

我正在使用 PrintDocument 来打印页面。有一次我想将文本旋转 90 度并打印它,即垂直打印文本。有什么想法吗???

g.RotateTransform(90);

不适用于 OnPaint。

最佳答案

当您调用 RotateTransform 时,您需要注意坐标系的最终位置。如果运行以下代码,“倾斜文本”将出现在左边缘的左侧;所以它不可见:

e.Graphics.Clear(SystemColors.Control);
e.Graphics.DrawString("Normal text", this.Font, SystemBrushes.ControlText, 10, 10);
e.Graphics.RotateTransform(90);
e.Graphics.DrawString("Tilted text", this.Font, SystemBrushes.ControlText, 10, 10);

由于您已将绘图表面倾斜 90 度(顺时针方向),y 坐标现在将沿右/左轴(从您的角度来看)而不是向上/向下移动。较大的数字更靠左。因此,要将倾斜的文本移动到表面的可见部分,您需要减小 y 坐标:

e.Graphics.Clear(SystemColors.Control);
e.Graphics.DrawString("Normal text", this.Font, SystemBrushes.ControlText, 10, 10);
e.Graphics.RotateTransform(90);
e.Graphics.DrawString("Tilted text", this.Font, SystemBrushes.ControlText, 10, -40);

默认情况下,坐标系的原点位于表面的左上角,因此 RotateTransform 将围绕该轴旋转表面。

这是一张说明这一点的图片;黑色是调用 RotateTransform 之前,红色是调用 RotateTransform(35) 之后:

Diagram

关于c# - 旋转文本以进行打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955362/

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