在C#中打印多个图像

时间:2011-08-10 20:03:15

标签: c# printing

我目前正在编写一个应用程序,允许用户查看大量图像并使用鼠标重新排列它们(ala Windows Table)。一切都很好,但我正在尝试设置一个系统,我可以选择多个图像并将它们发送到打印机。

我可以轻松地对所选对象列表进行迭代,然后弹出打印机就好了。我遇到的问题是尝试将它们组合成一个单独的打印作业,而不是每个页面的单个作业。主要原因是打印预览可用。当我在打印预览中迭代我的列表时,它只显示我的第一个图像,并且没有其他页面出现。我已经尝试了e.HasMorePages,但我仍然得到了相同的结果。这是我在打印活动中的代码:

    private void pd_PrintPage(object sender, PrintPageEventArgs e)
    {
        foreach (PictureBox PrintPic in SelectedCollection)
        {
            e.Graphics.DrawImage(PrintPic.Image, 0, 0);
            PageCounter++;
            e.HasMorePages = (PageCounter != SelectedCollection.Count);
        }  
    }
    private void pd_BeginPrint(object sender, PrintEventArgs e)
    {
            PageCounter = 0;
    }

我还是C#编码的新手,所以感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

摆脱循环:

private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
  e.Graphics.DrawImage(SelectedCollection[PageCounter], 0, 0);
  PageCounter++;
  e.HasMorePages = (PageCounter != SelectedCollection.Count);
}