我在c#中编写代码,使用打印机驱动程序以编程方式打印PDF。有时,会显示弹出窗口,需要用户输入,例如
碳粉即将耗尽,继续?是 - 否
并且在用户点击之前打印机不会打印。此代码在服务器上运行,因此没有人可以单击。 有没有办法克服这个问题,而不知道所有可能的问题(不同的打印机)。 我使用此代码进行打印,我阻止打印直到打印上一个文档:
process.StartInfo.FileName = filePath;
process.StartInfo.Arguments = "\"" + printerName + "\"";
process.StartInfo.UseShellExecute = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.Verb = "PrintTo";
process.Start();
var server = new PrintServer();
try
{
int numberOfJobs = server.GetPrintQueue(printerName).NumberOfJobs;
while (numberOfJobs == 0)
{
numberOfJobs = server.GetPrintQueue(printerName).NumberOfJobs;
}
while (numberOfJobs > 0)
{
numberOfJobs = server.GetPrintQueue(printerName).NumberOfJobs;
}
retVal = true;
}
catch
{
retVal = false;
}
finally
{
process.Kill();
}