0

这次我有一个希望是简单的问题:我想打印循环通过并以每页 2x2 打印的项目。我为此使用了一个循环和一个 Rectangle 数组。不过,这可以改变。打印到图形特定部分的最简单方法是什么?上下文是我在打印事件中使用提供的 e.Graphics 对象执行此操作 - 当前代码如下所示:

public void BeginPrintEvent(object sender, PrintPageEventArgs e)
{
    SizeF TestSize;
    string text = "";
    Image labelImage = new Bitmap((int)e.Graphics.DpiX, (int)e.Graphics.DpiY, e.Graphics);
    Graphics g = e.Graphics;
    Rectangle[] rect = new[] { new Rectangle(0,   0,   419, 581),
                               new Rectangle(419, 0,   419, 581),
                               new Rectangle(0,   581, 419, 581),
                               new Rectangle(419, 581, 419, 581) };

    try
    {
        for (int lblNum = 0; lblNum < 4); lblNum++)
        {
            g.DrawString( // lots of stuffs
            e.Graphics.DrawImage(labelImage, rect[lblNum]);
        }
    }
    catch (Exception exc)
    {
        // Report to user
    }
}

我似乎无法正确成像,尺寸往往非常小,因此大部分图像都丢失了。

4

1 回答 1

0

将其计算为:

 Image labelImage = new Bitmap(419 * ((int)e.Graphics.DpiX / 100), 581 * ((int)e.Graphics.DpiX / 100), e.Graphics);

为通过 Sinatr 注意到这篇文章而欢呼:)

于 2013-03-19T14:35:18.243 回答