使用System.Printing打印时指定不同的inputbin(printQueue.AddJob)

时间:2016-06-10 16:50:30

标签: c# wpf printing system.printing

我使用以下代码打印文档:

LocalPrintServer localPrintServer = new LocalPrintServer();
PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue();

// Call AddJob
PrintSystemJobInfo myPrintJob = defaultPrintQueue.AddJob();

// Write a Byte buffer to the JobStream and close the stream
Stream myStream = myPrintJob.JobStream;
Byte[] myByteBuffer = UnicodeEncoding.Unicode.GetBytes("This is a test string for the print job stream.");
myStream.Write(myByteBuffer, 0, myByteBuffer.Length);
myStream.Close();

我很难尝试将inputBin设置为特定的bin。我已经知道要使用它的垃圾桶"纸箱3"我的打印机的值为261。

据我所知,可以使用printTicket更改bin:

PrintTicket printTicket = defaultPrintQueue.DefaultPrintTicket;
printTicket.InputBin = InputBin.AutoSelect;

问题是枚举(system.printing.inputBin),它只包含标准的最小bin。 (值为0到5,没有bin2,bin3等。)

问题: - 在这种情况下,我怎么设置纸箱值? (261)我知道有办法做到这一点,但经过几个小时后,我仍然坚持这一点。

有任何帮助吗? (请注意,获取bin名称和相应的值不是我需要的,我只需要弄清楚如何在打印作业单中设置值

请注意,它仅适用于4.0项目

由于

1 个答案:

答案 0 :(得分:0)

我使用此处找到的奇怪方法(http://www.wittersworld.com/selecting-the-input-tray-when-printing-xps-documents/)并且它有效。