c#垂直打印文本,但字符保持水平

时间:2017-01-25 09:03:58

标签: c# printing

是否可以使用printdocument打印字符串,如下图所示。即在文本保持水平时垂直打印。我垂直打印的所有搜索都涉及旋转旋转字符的字符串。

我的代码效率极低且非常静态,因为它只考虑了PRODUCT这个词。事实上,我很尴尬甚至在这里发布,但你可以在下面看到它。我确定了每个角色的位置。这里的问题是PRODUCT这个词可以动态改变,所以下面的代码不起作用。

是否有任何内置函数可以像e.Graphics.RotateTransform那样为字符串执行此操作?

e.Graphics.DrawString("P", probsoltext, Brushes.Black, new PointF(28, 406));
e.Graphics.DrawString("R", probsoltext, Brushes.Black, new PointF(28, 423));
e.Graphics.DrawString("O", probsoltext, Brushes.Black, new PointF(28, 441));
e.Graphics.DrawString("D", probsoltext, Brushes.Black, new PointF(28, 459));
e.Graphics.DrawString("U", probsoltext, Brushes.Black, new PointF(28, 476));
e.Graphics.DrawString("C", probsoltext, Brushes.Black, new PointF(28, 495));
e.Graphics.DrawString("T", probsoltext, Brushes.Black, new PointF(28, 513));

enter image description here

1 个答案:

答案 0 :(得分:0)

希望以下代码有所帮助。

System.Drawing.Graphics formGraphics = this.CreateGraphics();
        string drawString = "Product";
        System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 16);
        System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);
        float x = 100.0f;
        float y = 15.0f;
        System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat(StringFormatFlags.DirectionVertical);
        formGraphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);
        drawFont.Dispose();
        drawBrush.Dispose();
        formGraphics.Dispose();

以下行可以解决问题

System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat(StringFormatFlags.DirectionVertical);