Seleccionar impresora

kikoascanio
30 de Enero del 2004
Hola compañeros,
Existe alguna manera de imprimir sin tener el usuario que elegir la impresora?
Esto es, yo quiero que cuando pulse F5 vaya a una impresora que esta conectada al puerto LPT1: y cuando pulse F6 se imprima en otra.

Gracias

Baltasar
30 de Enero del 2004
Es de la siguiente manera:

Supongamos que tienes varias impresoras, y quieres imprimir por la que se llama "PRIMERA" y también por "SEGUNDA", entonces has de hacer lo siguiente:

Dim MPrinter As Printer
For Each MPrinter In Printers
If MPrinter.DeviceName = "PRIMERA" Then
Set Printer = mprinter
End If
Next

Está claro que para seleccionar la segunda hay que poner el otro nombre, no?

Ahora está el tema de los nombres de las impresoras, así que te muestro una manera sencilla de averiguarlo:
Pon un listbox y el siguiente código:

Dim mprinter As Printer
For Each mprinter In Printers
List1.AddItem mprinter.DeviceName
Next

Ahí verás los nombres de todas las impresoras que tienes instaladas.

Yo lo que suelo hacer es poner ese listbox en una zona de la aplicación que sirva de configurador, entonces permito que el usuario seleccione qué impresoras serán, por ejemplo, para facturas, cuales para listados, y cuales para cartas (con membrete, se supone). Entonces cuando el usuario selecciona la impresora que va con cada "sección" yo guardo esa información en el registro de Windows. Porqué el registro y no en una base de datos? pues porque habitualmente las aplicaciones son multiusuario, y algunos usuarios prefieren la impresora que tienen más cerca para las cartas y los listados, y para facturar suele haber otra diferente. Así lo personaliza cada uno.

Suerte y si tienes dudas, avisa.