Pregunta

¿Cuál es la mejor manera de conservar / guardar la configuración de la impresora en .Net? Solía ??haber un error en .Net 1.1 en la serialización del objeto PrinterSetting y había algunos soluciones alternativas pero me pregunto si no hay una forma mejor o más sencilla de hacerlo en las versiones más recientes del marco.

El caso de uso principal es permitir que un usuario defina, utilizando las interfaces de usuario de configuración de impresora estándar, todos los detalles de impresión (incluidas las opciones específicas de la impresora) para una impresora determinada y guárdelas para que se restauren la próxima vez que el usuario imprime en esa impresora.

¿Fue útil?

Solución

Hice un método bastante gueto de descargando el DEVMODE actual y sobrescribiéndolo cuando quieran usarlo nuevamente para enviar algunas configuraciones de impresora propietarias a una máquina copiadora en el trabajo. No pude encontrar una mejor manera de obtener algunas de las propiedades que simplemente no estaban expuestas a través de la API de impresión (como las opciones patentadas de grapado y plegado en un antiguo controlador Fiery ... Creo que el nuevo modelo de impresora XPS es compatible para estos, pero el señor solo sabe cuándo comenzaremos a ver el apoyo de la industria para eso).

La advertencia principal es que no sería portátil en máquinas o en versiones diferentes del mismo controlador de impresora. Para mí, eso no es gran cosa, ya que es un entorno de oficina controlado. Para ti, supongo que dependerá del contexto en el que tus usuarios utilicen el programa.

¡Buena suerte!

Otros consejos

Debes usar la clase PrinterSettings .

la respuesta no programática sería: use la consola de administración de impresión de 2003 r2 server adminpack para exportar la configuración de la impresora. Tal vez esa característica tenga una API para ella, que se puede llamar desde .net.

Los problemas con la serialización de un objeto PrinterSetting tienen que ver con la propiedad PrintFileName.

Esta propiedad debe tener un valor para evitar una excepción cuando intente deserializar el objeto.

Si desea guardar los ajustes de impresora de un visor de informes

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

Y recuperarlos

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

De todos modos, guardar el Ajuste de Impresora solo conservará el " estándar " valor. Debe usar DEVMODE si desea conservar las cosas exóticas que tiene cada controlador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top