Вопрос

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

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

Это было полезно?

Решение

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

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

Удачи!

Другие советы

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

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

Проблемы с сериализацией объекта 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, если хотите сохранить экзотические вещи, которые есть у каждого драйвера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top