0

アドバイスをお願いします。イメージ リストを 1 ページに 1 つのイメージで印刷しようとしています。次のコードは、各画像を他の画像と重ねて 1 ページに印刷します。

  void pd_PrintPage(object sender, PrintPageEventArgs e)
    {

        List<Bitmap> labels = GetLabels();


        foreach (var bitmap in labels)
        {
            e.Graphics.DrawImageUnscaled(bitmap, 0, 0);
        }
    }
4

1 に答える 1

1

ビットマップの読み取りをPrintPageイベントハンドラーの外に移動し、次のようにします。

void pd_PrintPage(object sender, PrintPageEventArgs e)
{
   var bitmap = GetNextLabel();

   if(bitmap != null)
   {
      e.Graphics.DrawImageUnscaled(bitmap, 0, 0);
   }

   // Will print more pages as long as there are bitmaps
   e.HasMorePages = (bitmap != null);
}

したがって、GetNextLabel()メソッドは、次に印刷するビットマップを追跡し、印刷するビットマップがなくなるとnullを返す必要があります。

e.HasMorePages = trueに設定すると、別のページが印刷されます。詳細については、このリンクを参照してください

于 2012-09-24T10:26:58.520 に答える