【发布时间】:2017-10-19 19:15:58
【问题描述】:
我在某些 PC 上尝试了以下代码。
using (var lps = new LocalPrintServer())
using(var pqueue = lps.GetPrintQueue("PRINTER-NAME"))
{
pqueue.AddJob("job-name", @"C:\example.xps", false, pticket);
}
仅在一台 PC 上,它不起作用。
应用程序在AddJob 方法处冻结。
即使等待了很长时间,它也没有完成。
没有例外。
出现此问题的PC是Windows10并应用了CreatorsUpdate。 其他PC是Windows7、Windows8.1和Windows10应用了周年更新。
这个问题是 CreatorsUpdate 的错误吗?
补充:
有 CreatorsUpdate 的 PC 可以通过此代码打印 xps 文件。
using (var lps = new LocalPrintServer())
using(var pqueue = lps.GetPrintQueue("PRINTER-NAME"))
using (var doc = new XpsDocument(@"C:\example.xps", System.IO.FileAccess.Read))
{
var writer = PrintQueue.CreateXpsDocumentWriter(pqueue);
var docSeq = doc.GetFixedDocumentSequence();
writer.Write(doc, pticket);
}
【问题讨论】:
-
我遇到了同样的问题。它只发生在某些机器上,其他机器似乎很好。
-
我发现使用 AddJob 获取 PrintSystemJobInfo 对象,然后将 XPS 文件流式传输到其 JobStream 更可靠。
-
这可能是 Windows 10 的问题
-
@blz 你的代码救了我的命,它解决了我机器上的打印问题
标签: c# .net printing windows-10