C# 4.0 不间断地打印多个作业c#
有没有一种方法可以连续打印多个作业,而不让另一个用户在其间发送打印作业?(有点像“只要我的打印作业还没有完成,就不要把令牌给其他用户”) 这是一个共享打印机,许多用户都可以访问它,而我打印的是一个大文档,所以需要一些时间; 我使用了不止一个作业,因为它的页面不能从同一个纸盘打印,所以我必须在代码中切换纸张源 救命啊!先谢谢你C# 4.0 不间断地打印多个作业c#,c#-4.0,printing,printdocument,C# 4.0,Printing,Printdocument,有没有一种方法可以连续打印多个作业,而不让另一个用户在其间发送打印作业?(有点像“只要我的打印作业还没有完成,就不要把令牌给其他用户”) 这是一个共享打印机,许多用户都可以访问它,而我打印的是一个大文档,所以需要一些时间; 我使用了不止一个作业,因为它的页面不能从同一个纸盘打印,所以我必须在代码中切换纸张源 救命啊!先谢谢你 p.S.我正在使用.Net的PrintDocument对象据我所知,您不需要通过保持作业打开并发送PJL或其他不弹出页面的命令来使打印机保持忙碌。另一种选择是将作业连接到一
p.S.我正在使用.Net的PrintDocument对象据我所知,您不需要通过保持作业打开并发送PJL或其他不弹出页面的命令来使打印机保持忙碌。另一种选择是将作业连接到一个大作业中。我想您也可以通过编程暂停共享打印队列,并使用直接IP打印端口或其他方式直接发送数据。最终没有一个完美的解决方案
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);
}
}
private void打印页(对象发送方,PrintPageEventArgs ev)
{
使用(图元文件pageImage=新图元文件(streamList[currentPageIndex]))
{
//如果是第一页
如果(currentPageIndex==0)
{
//使用某个托盘
ev.PageSettings.PaperSource=PaperTrayPage1;
}
//对于文档的其余部分
其他的
{
//使用另一个托盘
ev.PageSettings.PaperSource=PaperTrayRest;
}
currentPageIndex++;
ev.Graphics.DrawImage(页面图像,ev.PageBounds);
ev.HasMorePages=(currentPageIndex
感谢您的回复,但是是否可以将具有不同页面设置和打印机设置的作业连接起来?是的,一个“文件”可以是10个不同postscript和/或PCL等打印作业的连接。由于每个作业都有一个开始和结束,通常包含一个打印机重置,因此设备会将其作为单独的作业进行处理。关键是要确保这些重置存在,尤其是在PCL和Postscript之间切换语言时(例如)。我建议在每项工作之间加入一些PJL。