Постоянные настройки принтера - PullRequest
4 голосов
/ 04 октября 2008

Каков наилучший способ сохранить / сохранить настройки принтера в .Net? Раньше была ошибка в .Net 1.1 при сериализации объекта PrinterSetting, и было несколько обходных путей , но мне интересно, нет ли лучшего или более простого способа сделать это в более свежие версии фреймворка.

Основной вариант использования - позволить пользователю определить, используя стандартные пользовательские интерфейсы настройки принтера, все подробности печати (включая параметры, относящиеся к принтеру) для данного принтера и сохранить их, чтобы они восстанавливались в следующий раз, когда пользователь печатает на этот принтер.

Ответы [ 4 ]

4 голосов
/ 13 февраля 2009

Я сделал красивый гетто метод , чтобы выкинуть текущий DEVMODE и перезаписать его обратно, когда они захотят использовать его снова , чтобы отправить некоторые собственные настройки принтера на копировальный аппарат на работе. Я не смог найти лучшего способа получить доступ к некоторым свойствам, которые просто не были представлены через API печати (например, проприетарные варианты сшивания и складывания на старом контроллере Fiery ... Я думаю, что новая модель принтера XPS имеет поддержку для них, но лорд знает, только когда мы начнем видеть поддержку промышленности для этого).

Главное предостережение в том, что он не будет переносимым между машинами или разными версиями одного и того же драйвера принтера. Для меня это не имеет большого значения, так как это контролируемая офисная среда. Для вас, я думаю, это будет зависеть от того, как ваши пользователи используют программу.

Удачи!

1 голос
/ 04 октября 2008

Вы должны использовать класс PrinterSettings.

0 голосов
/ 18 ноября 2015

Проблемы с сериализацией объекта PrinterSetting связаны со свойством PrintFileName.

Это свойство должно иметь значение, чтобы избежать исключения при попытке десериализации объекта обратно.

Если вы хотите сохранить настройки принтера для средства просмотра отчетов

Me.ReportViewer.PrinterSettings.PrintFileName = "abc"
My.Settings.PrinterSettings = Me.ReportViewer.PrinterSettings
My.Settings.Save()

И вернуть их обратно

If My.Settings.PrinterSettings IsNot Nothing Then Me.ReportViewer.PrinterSettings = My.Settings.PrinterSettings

В любом случае сохранение PrinterSetting сохранит только «стандартное» значение. Вы должны использовать DEVMODE, если хотите сохранить экзотические вещи, которые есть у каждого драйвера.

0 голосов
/ 31 октября 2008

непрограммированный ответ будет: используйте консоль управления печатью из пакета администратора сервера 2003 r2 для экспорта конфигурации принтера Возможно, у этой функции есть API, который можно вызвать из .net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...