2013-03-18 36 views
0

這次我有一個希望很簡單的問題:我想打印循環打印並以每頁2×2打印的項目。我爲此使用了一個循環,並使用了一個Rectangle數組。這可以改變。打印到圖形的某個部分最簡單的方法是什麼? 上下文是我做它在打印時,使用附帶的e.Graphics對象 - 當前的代碼如下所示:將4個相似的圖像打印到一個文檔c#

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 
    } 
} 

我似乎無法得到正確成像,大小趨於非常小,因此大部分圖像都會丟失。

+0

你已經回答了你的問題「太小」,爲什麼你的新形象有這麼小的漁政船? – Sinatr 2013-03-18 15:16:16

+0

@Sinatr大概我正在以正確的方式檢索大小。 e.Graphics對象中沒有明確的'Width'或'Height'成員。我擁有的是一些邪惡的剪輯使用。 – Whoop5 2013-03-19 07:35:36

+0

'Image labelImage = new Bitmap(419,581,e.Graphics);' – Sinatr 2013-03-19 10:47:14

回答

0

算出來的:

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

乾杯注意到後雖然Sinatr :)