首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`PrintQueue.AddJob`未完成

`PrintQueue.AddJob`未完成
EN

Stack Overflow用户
提问于 2017-05-19 23:23:47
回答 1查看 884关注 0票数 11

我试着在一些PC上跟踪代码。

代码语言:javascript
复制
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应用的AnniversaryUpdate。

这个问题是CreatorsUpdate的bug吗?

补充:

安装了CreatorsUpdate的PC机可以通过该代码打印出xps文件。

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-11 01:09:41

我确信目标打印机驱动程序不是基于XPS的。我也有同样的问题。

您可以首先通过以下方法检查打印机的兼容性:

代码语言:javascript
复制
LocalPrintServer server = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue queue = server.GetPrintQueue("MyPrinterName");            
MessageBox.Show(queue.IsXpsDevice.ToString());

如果结果是假的,那么这就是原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44073755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档