Изменить настройки принтера / настройки драйвера в C # - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь распечатать существующий файл XPS в GrayScale.Я попытался добавить PrintTicket в файл XPS, а также попытался изменить свойство 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);

Но все равно печатал файл в цветах ...

Итак, я думаю об изменении настроек печати в самих настройках драйвера, например:

enter image description here

enter image description here

Итак, возможно ли изменить эту опцию программно ??

1 Ответ

0 голосов
/ 09 декабря 2018

Изменение глобального состояния для решения локальной проблемы обычно является плохой идеей.Отправка печатного билета вместе с заданием должна обеспечить тот вид контроля, который вы ищете.Вы пробовали что-то подобное?

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);
...