我有一个在屏幕或打印机上写文本的课程。
public void draw(float scale, Graphics g)
{
Font font = new Font(fontName, size, FontStyle.Regular, GraphicsUnit.Millimeter);
SolidBrush brush = new SolidBrush(Color.Black);
Pen pen = new Pen(Color.Black, 1);
PointF point = new PointF(0, 0);// new PointF(l + scale * x, t + scale * y);
rect = new Rectangle(0, 0, (int)(g.MeasureString(text, font).Width), (int)(g.MeasureString(text, font).Height));
System.Drawing.Drawing2D.Matrix m = g.Transform;
g.ScaleTransform(scale, scale);
g.TranslateTransform(x - rect.Width / 2, y - rect.Height / 2);
g.RotateTransform(angle);
g.DrawString(text, font, brush, point);
g.Transform = m;
}
不同的文本块具有不同的字体大小,并放置在“页面”的不同x位置。我在x处放置两个不同大小的块,其中文本在屏幕上的相同位置结束。当我打印“页面”时,即使中心看起来处于同一位置,这两个单词也不会在同一位置结束。
我已搜索但无法找到解决问题的任何内容。
答案 0 :(得分:0)
我不确定这是否有帮助,但我很久以前就知道打印机压缩间距的方式不同于屏幕。例如,如果您在文档上写了一堆字母,并且在它们之间有标签和空格键空格,那么在屏幕上看起来与在纸张上打印文档时不同。也许它给你一个开始的地方?