0

今回は簡単な質問があります。ループして1ページに2x2で印刷されるアイテムを印刷したいと思います。そのためのループとRectangle配列を使用しています。しかし、それは変わる可能性があります。グラフィックの特定の部分に印刷する最も簡単な方法は何ですか?コンテキストは、提供されたe.Graphicsオブジェクトを使用してprintイベントで実行していることです。現在のコードは次のようになります。

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 に答える