Foros del Web » Programación para mayores de 30 ;) » Programación General »

Abrir PDF

Estas en el tema de Abrir PDF en el foro de Programación General en Foros del Web. Holas a to2, salu2 desde Chile...ojalas alguien pueda ayudarme, este es el problema....tengo una aplicación Vb6 en la cual necesito abrir un documento PDF en ...
  #1 (permalink)  
Antiguo 03/03/2004, 07:45
Avatar de HiTek  
Fecha de Ingreso: noviembre-2003
Ubicación: LF, Santiago.Chile
Mensajes: 217
Antigüedad: 21 años
Puntos: 0
Abrir PDF

Holas a to2, salu2 desde Chile...ojalas alguien pueda ayudarme, este es el problema....tengo una aplicación Vb6 en la cual necesito abrir un documento PDF en Acrobat no en un form...revisando revisando encontre que algo se puede hacer desde la Shell pero no logro solucionarlo, este es el código que tengo, poer ejemplo tengo un archivo Pdf en c: (c:\Temp.pdf -> es un manual de procedimientos) y necesito abrirlo desde VB

Código PHP:
Shell ("C:\\Archivos de programa\\Adobe\\Acrobat 5.0\\Reader\\AcroRd32.exe c:\\TEMP.pdf"
el asunto es que no lobro abrir el Pdf, acrobat aparece pero envi aun error diciendo que el archivo no es compatible o que ha perdido el formato, y otra cosa es que si el sistema es un Win versión en Ingles o si la version de acrobat no es la 5.0 no se podrá llamar al programa...esto me complica....ojalas hayan uds solucionado esto y puedan tenderme una mnao...salu2 desde ya y gracia spor leer este Post
  #2 (permalink)  
Antiguo 03/03/2004, 08:04
Avatar de HiTek  
Fecha de Ingreso: noviembre-2003
Ubicación: LF, Santiago.Chile
Mensajes: 217
Antigüedad: 21 años
Puntos: 0
mmmm bueno ahora funciona la cosa...efctivamente el archivo estaba dañado, extraño pq se cambio de una ubicación a otra....raro
Código PHP:
Shell "C:\Archivos de programa\Adobe\Acrobat 5.0\Reader\AcroRd32.exe C:\BPM_Tutorial.pdf" 
el asunto es como encontrar Acrobat si está instalado...salu2 gracias a los que leyeron el Post
  #3 (permalink)  
Antiguo 03/03/2004, 12:48
 
Fecha de Ingreso: septiembre-2003
Mensajes: 172
Antigüedad: 21 años, 3 meses
Puntos: 0
Hola, no es exactamente lo que pides, pero si usas la API shellexecute esta actua directamente como si hicieras un doble click en el archivo, asi que si no esta instalado simplemente no se abre y a ti te genera un error facilmente controlable. Espero que te sirva.

Saludos!
__________________
Sr.Propio
  #4 (permalink)  
Antiguo 03/03/2004, 15:34
Avatar de HiTek  
Fecha de Ingreso: noviembre-2003
Ubicación: LF, Santiago.Chile
Mensajes: 217
Antigüedad: 21 años
Puntos: 0
grax rafapaskual, encontre por ahi buscando buscando la funcion ShellExecute y funciona perfecto cabe decir que lo serrores que generas son los sgtes

valores retornados y su interpretacion

2: Archivo no encontrado en la ruta especificada
31: Acrobat Reader no instalado
42: acrobat instalado y archivo abierto

un problema que tengo es que esta API si bien abre el archivo PDF lo deja cargado en memoria sin visualizarse, por esto se debe llamar 2 veces a la funcion, en la primera llamada carga el objeto Acrobat cn el archivo en memoria y en la segunda llamada lo visualiza dejando una sola instancia de Acobat...mañana les posteo el resultado dee esta investigacion para quien la necesite, yo la utilizo en un software en el menu Ayuda para abrir el Manual de la aplicación...salu2
  #5 (permalink)  
Antiguo 04/03/2004, 10:06
Avatar de HiTek  
Fecha de Ingreso: noviembre-2003
Ubicación: LF, Santiago.Chile
Mensajes: 217
Antigüedad: 21 años
Puntos: 0
Código PHP:
Private Sub Command1_Click()
    
Call AbrePDF("test.pdf")
End Sub

Sub AbrePDF
(MiArchivoPDF As String)
    
RetVal ShellExecute(Me.hWndvbNullStringMiArchivoPDFvbNullStringApp.Path "\", SW_SHOWMAXIMIZED)
    RetVal = ShellExecute(Me.hWnd, vbNullString, MiArchivoPDF, vbNullString, App.Path & "", SW_SHOWMAXIMIZED)
    Form1.Caption = RetVal
    If RetVal = 2 Then
        MsgBox "
Archivo de ayuda No encontrado en la ruta.", vbExclamation, "Error de carga"
    End If
    If RetVal = 31 Then
        MsgBox "
Falta instalar Acrobat Readerimposible abrir el documento.", vbExclamation, "Error de carga"
    End If
End Sub 
y en un modulo esto
Código PHP:
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As LongByVal lpOperation As StringByVal lpFile As String_
ByVal lpParameters 
As StringByVal lpDirectory As StringByVal nShowCmd As Long) As Long 
  #6 (permalink)  
Antiguo 04/03/2004, 11:55
 
Fecha de Ingreso: septiembre-2003
Mensajes: 172
Antigüedad: 21 años, 3 meses
Puntos: 0
Hola Hitek, creo que lo de que no se te muestre es del ultimo parámetro, yo me curre una funcioncilla para no tener que escribir tanto ya que siempre la llamaba igual, así lo muestra en primer plano, lo de los errores esta más currao como tu lo tienes.
Código:
Public Sub Abre(ruta As String)
Dim Ventana As Long     'variable necesaria para la API
Dim sError As String    'cadena de error
'llama a la API que abre cualquier documento que tenga un programa asociado
' el valor 5 del último parámetro equivale a la constante SW_SHOW que hace que se muestre el documento
If ShellExecute(Ventana, "open", ruta, vbNullString, vbNullString, 5) <= 32 Then
    sError = MsgBox("No puede abrir o no se encuentra el documento" & vbCrLf & ruta, vbExclamation + vbOKOnly, "Error")
End If
End Sub
Saludos!
__________________
Sr.Propio
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 18:26.