Buenos días.
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