【发布时间】:2017-12-31 21:19:09
【问题描述】:
我有一个 C# WinForms 应用程序。用户上传 .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
更新:
根据以下答案,我可以在添加作业时发送 PrintTicket,如下所示:
PrintTicket pt = printQueue.DefaultPrintTicket;
pt.CopyCount = 2;
// pt.InputBin = [ InputBin enum option ]
printQueue.AddJob("name", "file", false, pt);
我看不到为 PrintTicket 设置 InputBin 的任何简单方法。 InputBin 是一个枚举,没有一个选项来设置为可用垃圾箱之一的名称。
【问题讨论】:
标签: c# winforms printing xps printdocument