我有一個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