在 C# 中更改打印机首选项/驱动程序设置
Change Printer preferences / Driver Settings in C#
我正在尝试在 GrayScale 中打印现有的 XPS 文件。
我尝试在 XPS 文件中添加一个 PrintTicket,还尝试更改打印机的 PrintQueue 属性,例如:
LocalPrintServer server = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue pq = server.GetPrintQueue("MyPrinterName");
pq.DefaultPrintTicket.OutputColor = OutputColor.Grayscale;
PrintSystemJobInfo print = pq.AddJob("myPrintJob", "MyFileToPrint.xps",false);
但仍以彩色打印文件...
所以,我考虑在驱动程序设置本身中更改打印设置,例如:
那么,是否可以通过编程方式更改此选项??
改变全局状态来解决局部问题通常不是一个好主意。随作业一起提交打印票应该可以实现您正在寻找的那种控制。你试过这样的东西吗?
LocalPrintServer server = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue pq = server.GetPrintQueue("MyPrinterName");
var jobTicket = pq.DefaultPrintTicket;
jobTicket.OutputColor = OutputColor.Grayscale;
PrintSystemJobInfo print = pq.AddJob("myPrintJob", "MyFileToPrint.xps", false, jobTicket);
我正在尝试在 GrayScale 中打印现有的 XPS 文件。 我尝试在 XPS 文件中添加一个 PrintTicket,还尝试更改打印机的 PrintQueue 属性,例如:
LocalPrintServer server = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue pq = server.GetPrintQueue("MyPrinterName");
pq.DefaultPrintTicket.OutputColor = OutputColor.Grayscale;
PrintSystemJobInfo print = pq.AddJob("myPrintJob", "MyFileToPrint.xps",false);
但仍以彩色打印文件...
所以,我考虑在驱动程序设置本身中更改打印设置,例如:
那么,是否可以通过编程方式更改此选项??
改变全局状态来解决局部问题通常不是一个好主意。随作业一起提交打印票应该可以实现您正在寻找的那种控制。你试过这样的东西吗?
LocalPrintServer server = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue pq = server.GetPrintQueue("MyPrinterName");
var jobTicket = pq.DefaultPrintTicket;
jobTicket.OutputColor = OutputColor.Grayscale;
PrintSystemJobInfo print = pq.AddJob("myPrintJob", "MyFileToPrint.xps", false, jobTicket);