我有一个C#WinForms应用程序。用户上传.XPS文件并指定一些打印机设置(份数,纸盒等)。 程序需要以这些设置以编程方式打印文档。也就是说,不能进行用户交互来进行打印。以编程方式将XPS文件打印到物理打印机
我可以用System.Printing AddJob方法来接近。 (https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/how-to-programmatically-print-xps-files)。不过,我不能在这里定义特定设置,如纸张来源,打印份数等。
我宁愿使用PrintDocument方法,但我无法弄清楚如何让PrintDocument呈现/打印XPS文件。
我已看过此资源https://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.printpage(v=vs.110).aspx,但无法看到我如何让PrintPageEventHandler呈现XPS文档。
有关如何继续的任何想法?帮助将不胜感激!
C#.NET 4.5
UPDATE:
基于下面的答案,我可以发送打印标签时,我添加作业,就像这样:
PrintTicket pt = printQueue.DefaultPrintTicket;
pt.CopyCount = 2;
// pt.InputBin = [ InputBin enum option ]
printQueue.AddJob("name", "file", false, pt);
我看不到任何简单的方法来设置PrintTicket的InputBin。 InputBin是一个枚举,并没有一个选项可以将其设置为可用仓位的名称。
谢谢。我没有意识到我可以用这种方式添加PrintTicket。这很容易让我指定副本数量,但看起来像设置“输入斌”(托盘)有点更具挑战性。有关如何设置输入箱的任何建议? – luxdvie
虽然有PrintTicket.InputBin属性,但对输入框的控制是有限的,主要是由于各种制造商以不同的方式实施它。使用XPS时,您通常需要选择一个输入PageMediaSize和PageMediaType,然后让打印机决定从哪个仓中提取。 – Jon