Yo he usado el print para imprimir en impresoras en red, y me funciona bien, pri
mero comparto la impresora (Si esta pegada a una Pc).
La instalo en mi Pc y le coloco un nombre amigable por ejemplo "ImpresoraRed" o le dejo el que sale (Epson LX-300 on Pc2). Uso este procedimiento en VB6 Private Sub SeleccionaImpresora(ByVal Impresora As String) Dim Prt As Printer For Each Prt In Printers If Prt.DeviceName = Impresora Then Set Printer = Prt Exit For End If Next End Sub Y lo uso de esta forma: SeleccionaImpresora "ImpresoraRed" De esta forma ya tengo destinado el lugar a donde se iran los trabajos de impres ion mediante el objeto printer. -------------------------------------------- yo no pude cambiar una impresora predeterminada (porque no se puede desde vb) pe ro si pude enlistar las impresoras y seleccionar donde voy a imprimir aqui te de jo el codigo y espero te sirva. 'En un formulario pones un combo y un boton' Private Sub Form_Load() Dim x As Printer For Each x In Printers Combo1.AddItem x.DeviceName Next End Sub Private Sub Command1_Click() Set Printer = Printers(Combo1.ListIndex) Printer.ScaleHeight Printer.Font = "Verdana" Printer.CurrentY = 1150 Printer.FontSize = 14 Printer.Print "ESTO ES LO QUE SE IMPRIMIRA EN LA LINEA 1" Printer.Print "ESTO ES LO QUE SE IMPRIMIRA EN LA LINEA 2" Printer.Print "ESTO ES LO QUE SE IMPRIMIRA EN LA LINEA ..." Printer.Print "ESTO ES LO QUE SE IMPRIMIRA EN LA LINEA N" Printer.EndDoc End Sub 'Espero te haya servido,, saludosss ************************************************* Private Sub Command2_Click() Dim obj_Impresora As Object Set obj_Impresora = CreateObject("WScript.Network") obj_Impresora.setdefaultprinter "nombre de la impresora" Set obj_Impresora = Nothing End Sub De esta forma anda perfecto, lo que si agregenle si quieren ,no obligatorio, un "On Error Goto....." por si el nombre de impresora que ingresan no es valida, qu e lo disfruten ////////////////////////////////// Dim X As printer For Each X In Printers If X.DeviceName = "HP DeskJet 930C/932C/935C" Then ' Set printer as system default. Set printer = X ' Stop looking for a printer. Exit For End If Next Este cdigo tiene que antes de mandar imprimir para que en ese momento la impresor a por deafult sea cambiada, pero tomando en cuenta que solamente es cambiada par a la impresin temporal; es decir no cambia la impresora por defecto de todo el wi ndows, sino que solamente para imprimir en una circuntasncia dada. En mi caso cuento cun un print server de una red y dentro de mi programa tengo q ue poder elegir desde cdigo a cual impresora enviar los datos segn sea la accin del usuario. Sustituye el (X.DeviceName = "HP DeskJet 930C/932C/935C") con el nombre adecuado o incluso una variable en dnde indique el nombre de la impresora a la que se des ea imprimir. Espero sea de tu ayuda.
Excel para principiantes: Aprenda a utilizar Excel 2016, incluyendo una introducción a fórmulas, funciones, gráficos, cuadros, macros, modelado, informes, estadísticas, Excel Power Query y más
Ciberseguridad: Una Simple Guía para Principiantes sobre Ciberseguridad, Redes Informáticas y Cómo Protegerse del Hacking en Forma de Phishing, Malware, Ransomware e Ingeniería Social