Necesito hacer con Asp.net una aplicación que de de altas impresoras en red. Eso lo tengo controlado, pero lo que estoy tratando es de poder configurarla para que al darla de alta, la ponga como parámetros, aulgunas configuraciones, sobre todo, que toda bandeja de salida quede configurada al tamaño A4 y no en Letter.
Con la clase System.Printing, y el PrintTicket consigo por ejemplo ponerle propiedades del tipo cuatro páginas por cara, y poner a A4, el tamaño del papel, pero existe otra pestaña, la de "Device Settings" donde el tamaño de la página sigue estando a Letter.
Para que nos entendamos, consigo cambiar el tamaño del papel de las propiedades avanzadas de la impresora, pero no cambiar el tamaño del papel de la pestaña de Device Settings. ¿Sabéis como puedo lograrlo?
El código que utilizo es el siguiente:
Código:
Public Sub ConfigPrinter(ByVal Servidor As String, ByVal sPrinterName As String) Dim ObjPrinterServer As System.Printing.PrintServer Dim Printer As PrintQueue ObjPrinterServer = New System.Printing.PrintServer("\\" + Servidor, Printing.PrintSystemDesiredAccess.AdministrateServer) Printer = New PrintQueue(ObjPrinterServer, sPrinterName, PrintSystemDesiredAccess.AdministratePrinter) Dim printCapabilites As PrintCapabilities = Printer.GetPrintCapabilities() ' Get default PrintTicket from printer Dim printTicket As PrintTicket = Printer.DefaultPrintTicket printTicket.PagesPerSheet = 4 ' Modify PrintTicket If printCapabilites.CollationCapability.Contains(Collation.Collated) Then printTicket.Collation = Collation.Collated End If If printCapabilites.DuplexingCapability.Contains(Duplexing.TwoSidedLongEdge) Then printTicket.Duplexing = Duplexing.TwoSidedLongEdge End If If printCapabilites.StaplingCapability.Contains(Stapling.StapleDualLeft) Then printTicket.Stapling = Stapling.StapleDualLeft End If For Each mediaSize As PageMediaSize In printCapabilites.PageMediaSizeCapability If mediaSize.PageMediaSizeName = PageMediaSizeName.ISOA4 Then Dim TamPapel As New System.Printing.PageMediaSize(PageMediaSizeName.ISOA4) printTicket.PageMediaSize = TamPapel End If Next Printer.DefaultPrintTicket = printTicket Printer.Commit() Printer.Refresh() End Sub