La Web del Programador: Comunidad de Programadores
 
    Pregunta:  52020 - IMPRIMIR UN ARCHIVO .PDF DIRECTO A LA BANDEJA 3 EN VB
Autor:  Sr_Novato Novato
Que tal amigos, espero me puedan contestar mi pregunta ya que en verdad que me urge.

Necesito mandar a imprimir un documento .pdf a la impresora predeterminada, pero necesito que lo imprima utilizando forzosamente la bandeja 3 de la impresora. Por hay en internet baje algunos programitas pero no me resuelven mi problema, la aplicacion esta en visual basic 6.0.

utilizo la siguiente funcio, manda a imprimir pero no le importa de que bandeja lo imprima
res = ShellExecute(Me.hwnd, "print", "C:\prueba.pdf", "", "", 0)

Espero me puedan ayudar, de ante mano mil gracias

  Respuesta:  LUIS LAU
HOLA , LO QUE PUEDES HACER ES IDENTIFICAR LA IMPRESORA POR SU NOMBRECON LA QUE QUIERES IMPRIMIR SEGUN EL TIPO DE DOCUMENTO A IMPRIMIR:
EJEMPLO TENEMOS 3 IMPRESORAS CON NOMBRES "F","B","G"(PRINTER.DEVICENAME)


Dim P As Printer
Dim nom_impresora As String
Dim POS As Integer

x = Printer.Port 'GUARDAMOS EL PREDETERMINADO
For Each P In Printers 'BUCLE DE TODAS LAS IMPRESORAS
POS = InStr(1, UCase(P.DeviceName), "(", 1)
If POS > 0 Then
nom_impresora = Trim(Mid(UCase(P.DeviceName), 1, POS - 1))
Else
nom_impresora = Trim(UCase(P.DeviceName))
End If
'si el doc. es "01" y la impresora es F tonces asignamos la impresora
'y salimos de bucle, hacemos los mismo en los demas casos
If CODI_DOCUMENTO = "01" Then
If nom_impresora = "F" Then
Set Printer = P
Exit For
End If
End If
If CODI_DOCUMENTO = "03" Then
If nom_impresora = "B" Then
Set Printer = P
Exit For
End If
End If
If CODI_DOCUMENTO = "09" Then
If nom_impresora = "G" Then
Set Printer = P
Exit For
End If
End If
Next P
'lineas a imprimir

printer.EndDoc

'luego dejamos la impresora con la q estaba como predeterminada
'la cual esta guardada en la variable x


For Each P In Printers
If P.Port = x Then
Set Printer = P
Exit For
End If
Next P

'espero t ayude, me escribes