首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PrintQueue中添加作业时打印作业异常

在PrintQueue中添加作业时打印作业异常
EN

Stack Overflow用户
提问于 2015-02-10 15:41:23
回答 1查看 2.1K关注 0票数 1

使用此代码:

代码语言:javascript
复制
PrintQueue pq;
using (var PS = new LocalPrintServer())
{
    pq = PS.GetPrinterQueue("HP Printer");
}

pq.AddJob("JobName 1", "C:\\Resources\\basic.xps", true, pq.DefaultPrintTicket.Clone());

我可以使用一些打印机队列成功地打印文件,但不能使用所有的打印机队列,而且我得到的System.PrintJobException--Specified方法不支持。(这里的参数PrintTicket是默认的,但我需要这个重载方法来更改这个值)。

PrintQueue.AddJob(string jobName, string filePath, bool fastCopy)还抛出了System.PrintJobException。

但是,使用PrintQueue.AddJob(string jobName)而不是PrintQueue.AddJob(string jobName, string filePath, bool fastCopy, PrintTicket printTicket),它不会引发异常,但是不能指定要打印的文件。

每个驱动程序都支持PrintQueue.AddJob()吗?有什么遗漏了吗?

提前谢谢。

我终于用而不是pq.AddJob()解决了它

代码语言:javascript
复制
pq.UserPrintTicket = pq.DefaultPrintTicket.Clone(); // Whatever PrintTicket we need
pq.Commit();
string s;
using (StreamReader strReader = new StreamReader("C:\\Resources\\basic.xps")){
s = strReader.ReadToEnd();
}
 PrintDocument p = new PrintDocument();
 p.PrintPage += delegate(object sender1, PrintPageEventArgs e1)
 {
       e1.Graphics.DrawString(s, new Font("Times New Roman", 12), new SolidBrush(Color.Black), new RectangleF(0, 0, p.DefaultPageSettings.PrintableArea.Width, p.DefaultPageSettings.PrintableArea.Height));

};
p.Print();
EN

回答 1

Stack Overflow用户

发布于 2015-12-14 10:35:43

只需在fastCopy = false中设置PrintQueue.AddJob(string jobName, string filePath, bool fastCopy)

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

https://stackoverflow.com/questions/28435706

复制
相关文章

相似问题

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