Question

Quel est le meilleur moyen de conserver / enregistrer les paramètres de l’imprimante au format .Net? Il y avait un bogue dans .Net 1.1 lors de la sérialisation de l'objet PrinterSetting et il y avait des solutions de contournement , mais je me demande s’il n’existe pas de moyen plus simple ou plus simple de procéder dans les versions les plus récentes du framework.

Le principal cas d'utilisation consiste à permettre à un utilisateur de définir, à l'aide des interfaces utilisateur des paramètres d'imprimante standard, tous les détails d'impression (y compris les options spécifiques à l'imprimante) pour une imprimante donnée et de les enregistrer afin de les restaurer ultérieurement. imprime vers cette imprimante.

Était-ce utile?

La solution

J'ai créé une jolie méthode ghetto de vidant le DEVMODE actuel et le réécrivant s’ils veulent l’utiliser à nouveau pour envoyer des paramètres d’imprimante propriétaires à un copieur au travail. Je ne pouvais pas trouver un meilleur moyen d'accéder à certaines propriétés qui n'étaient tout simplement pas exposées via l'API d'impression (telles que les options d'agrafage et de pliage propriétaires sur un ancien contrôleur Fiery ... Je pense que le nouveau modèle d'imprimante XPS prend en charge pour ceux-ci, mais seigneur sait seulement quand nous commencerons à voir le soutien de l'industrie pour cela).

Le principal inconvénient est qu’il ne serait pas portable sur différentes machines ou entre différentes versions du même pilote d’imprimante. Pour moi, ce n'est pas grave car c'est un environnement de bureau contrôlé. Pour vous, je suppose que cela dépend du contexte dans lequel vos utilisateurs utilisent le programme.

Bonne chance!

Autres conseils

Vous devez utiliser la classe PrinterSettings .

La réponse non programmatique serait: utilisez la console de gestion d’impression à partir de 2003 adminpack du serveur R2 pour exporter la configuration de l’imprimante. Peut-être que cette fonctionnalité possède une API, qui peut être appelée à partir de .net.

Les problèmes liés à la sérialisation d'un objet PrinterSetting concernent la propriété PrintFileName.

Cette propriété doit avoir une valeur pour éviter une exception lorsque vous essayez de désérialiser l'objet.

Si vous souhaitez enregistrer les paramètres d'impression d'un visualiseur de rapport

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

Et les récupérer

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

Quoi qu’il en soit, la sauvegarde du PrinterSetting ne conservera que le symbole "standard". valeur. Vous devez utiliser DEVMODE si vous souhaitez conserver les éléments exotiques de chaque pilote.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top