Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Imprimir pdf desde vb

Estas en el tema de Imprimir pdf desde vb en el foro de Visual Basic clásico en Foros del Web. Buenas, He encontrado un codigo que me perimte imprimir archivos pdf mediante un Shell pero me encuentro con el problema, aunque yo cambie la impresora ...
  #1 (permalink)  
Antiguo 14/04/2009, 05:20
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Imprimir pdf desde vb

Buenas,
He encontrado un codigo que me perimte imprimir archivos pdf mediante un Shell pero me encuentro con el problema, aunque yo cambie la impresora por código, cuando se ejecuta el shell me lo imprime por la impresora que estaba por defecto cuando se abrió la base de datos en access.

¿Alguien sabe si es posible cambiar la impresora del shell?
  #2 (permalink)  
Antiguo 14/04/2009, 05:28
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: Imprimir pdf desde vb

Pone el codigo, no somos adivinos
  #3 (permalink)  
Antiguo 15/04/2009, 01:03
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Respuesta: Imprimir pdf desde vb

Dim Resultado As Variant

' enviamos el fichero a la impresora
Resultado = PrintFile("c:\MiFichero.pdf")
If Resultado = True Then
MsgBox "El documento se envió a la impresora"
Else
MsgBox Resultado
End If

'---------------------------------------------------------
'
' PrintFile
'
' Código escrito originalmente por Francisco Javier García
' Aguado (Búho)
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
' [email protected]
'
' Este código se brinda por cortesía de
' Francisco Javier García Aguado (Búho)
'
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Declare Function FormatMessage Lib "kernel32" _
Alias "FormatMessageA" _
(ByVal dwFlags As Long, _
lpSource As Any, _
ByVal dwMessageId As Long, _
ByVal dwLanguageId As Long, _
ByVal lpBuffer As String, _
ByVal nSize As Long, _
Arguments As Long) As Long

Private Const SW_HIDE = 0&
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000

' función que imprime un documento de cualquier aplicación
Public Function PrintFile(FileName As String) As Variant
Dim RetVal As Long
Dim sError As String
Dim LenMsg As Long

' se manda imprimir el documento
RetVal = ShellExecute(0&, "print", FileName, 0&, vbNullString, SW_HIDE)

' si se ha producido algún error
If RetVal < 33 Then
sError = Space(1024)
' obtenemos el mensaje de error que manda el sistema
LenMsg = FormatMessage( _
FORMAT_MESSAGE_FROM_SYSTEM, _
ByVal 0&, _
RetVal, _
0&, _
sError, _
Len(sError), _
0&)
' devolvemos el mensaje de error
PrintFile = Left(sError, LenMsg - 1)
Else
' la función tuvo éxito
PrintFile = True
End If

End Function
'---------------------------------------------------------
  #4 (permalink)  
Antiguo 15/04/2009, 01:03
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Respuesta: Imprimir pdf desde vb

El codigo anterior me permite imprimir archivos externos a la base de datos pero aunque cambie la impresora determinada mediante visual basic cuando se ejecuta el shell toma como impresora la que habia como predeterminada al abrir la base de datos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:08.