不间断打印多个作业c#

时间:2014-04-22 13:57:27

标签: c#-4.0 printing printdocument

有没有办法连续打印多个作业,而不让另一个用户在其间发送打印作业? (只要我的打印作业尚未完成,“不要将令牌交给其他用户”)

这是一个共享的打印机,很多用户都可以访问它,而我所做的是一个大文档,所以需要一些时间; 我正在使用多个作业,因为它的页面不能从同一个纸盘打印,所以我必须在我的代码中切换纸张来源。

请帮忙!并提前感谢。

P.S。 我正在使用.Net的PrintDocument对象

2 个答案:

答案 0 :(得分:1)

  1. 我可以在打印(修改PrintPageEventHandler),here链接以及我的代码示例时更改每个页面的设置,而不是使用多个作业:

    private void PrintPage(object sender, PrintPageEventArgs ev)
    {
        using (Metafile pageImage = new Metafile(streamList[currentPageIndex]))
        {
            // If it's the first page
            if (currentPageIndex == 0)
            {
                // Use a certain tray
                ev.PageSettings.PaperSource = PaperTrayPage1;
            }
            // For the rest of the document
            else
            {
                // Use another tray
                ev.PageSettings.PaperSource = PaperTrayRest;
            }
    
            currentPageIndex++;
    
            ev.Graphics.DrawImage(pageImage, ev.PageBounds);
            ev.HasMorePages = (currentPageIndex < streamList.Count);
        }
    }
    
  2. 可以组合多个作业(PrintDocument对象),here就是一个例子。

答案 1 :(得分:0)

据我所知,您不需要通过保持打开作业并发送PJL或其他不弹出页面的命令来保持打印机忙碌。另一种选择是将您的作业连接成一个大型作业。我猜你也可以以编程方式暂停共享打印队列并使用直接IP打印端口或其他东西直接发送数据。最后,没有一个优雅的解决方案。