Как редактировать свойства страницы во время печати | С#
Я создаю приложение с использованием C# и WinForm для управления файлами, печатаемыми пользователем. Как только я печатаю, я запускаю программу со следующим кодом. Для создания этого приложения я использовал инструкцию, показанную в ссылке ниже:
private void OnJobStatusChanged(object Sender, PrintJobChangeEventArgs e)
{
MethodInvoker invoker = () =>
{
if (e.JobStatus == JOBSTATUS.JOB_STATUS_SPOOLING)
{
bool res = PausePrintJob(printerList.Text.Trim(), e.JobID);
MessageBox.Show(res.ToString());
}
txtLogs.Text += e.JobID + " - " + e.JobName + " - " + e.JobStatus + '\n';
};
if (txtLogs.InvokeRequired)
{
Invoke(invoker);
}
else
{
invoker();
}
}
public static bool PausePrintJob(string printerName, int printJobID)
{
bool isActionPerformed = false;
string searchQuery = "SELECT * FROM Win32_PrintJob";
ManagementObjectSearcher searchPrintJobs =
new ManagementObjectSearcher(searchQuery);
ManagementObjectCollection prntJobCollection = searchPrintJobs.Get();
foreach (ManagementObject prntJob in prntJobCollection)
{
System.String jobName = prntJob.Properties["Name"].Value.ToString();
//Job name would be of the format [Printer name], [Job ID]
char[] splitArr = new char[1];
splitArr[0] = Convert.ToChar(",");
string prnterName = jobName.Split(splitArr)[0];
int prntJobID = Convert.ToInt32(jobName.Split(splitArr)[1]);
string documentName = prntJob.Properties["Document"].Value.ToString();
if (String.Compare(prnterName, printerName, true) == 0)
{
if (prntJobID == printJobID)
{
prntJob.InvokeMethod("Pause", null);
isActionPerformed = true;
break;
}
}
}
return isActionPerformed;
}`
Теперь проблема с программой в том, что после того, как пользователь дает команду на печать, мне иногда нужно распечатать страницы в черно-белом режиме, а иногда и в цвете. Я использовал следующую команду через powershell. Однако как только страница получит команду печати, результат не изменится.
Set-PrintConfiguration -PrinterName "PRINTER NAME" -Color $false //or 0
Эта команда работала для новых файлов для печати. Но файлы, заказанные на печать, остаются в старых настройках. Мне нужно изменить свойства страницы после подачи команды печати. Я просмотрел