Я вызываю диалог настроек принтера через windows API
private void OpenPrinterPropertiesDialog(PrinterSettings printerSettings)
{
IntPtr hDevMode = printerSettings.GetHdevmode(printerSettings.DefaultPageSettings);
IntPtr pDevMode = GlobalLock(hDevMode);
//int sizeNeeded = DocumentProperties(new WindowInteropHelper(this).Handle, IntPtr.Zero, printerSettings.PrinterName, pDevMode, ref pDevMode, 0);
int sizeNeeded = DocumentProperties(new WindowInteropHelper(this).Handle, IntPtr.Zero, printerSettings.PrinterName, IntPtr.Zero, pDevMode, 0);
IntPtr devModeData = Marshal.AllocHGlobal(sizeNeeded);
DocumentProperties(new WindowInteropHelper(this).Handle, IntPtr.Zero, printerSettings.PrinterName, devModeData, pDevMode, 14);
GlobalUnlock(hDevMode);
printerSettings.SetHdevmode(devModeData);
printerSettings.DefaultPageSettings.SetHdevmode(devModeData);
GlobalFree(hDevMode);
Marshal.FreeHGlobal(devModeData);
}
Моя проблема в том, что настройки не сохраняются. Настройки должны быть сохранены на уровне операционной системы, чтобы эти настройки оставались для каждого приложения.