Ejecutar Acrobat reader desde VFP

856 views
Skip to first unread message

Susasel

unread,
Mar 4, 2010, 6:13:25 PM3/4/10
to Mundo Visual FoxPro
Hola! Estoy realizando el desarrollo de un sistema de control de
documentos en VFP 8.0 y necesito crear un boton en la aplicación que
abra el acrobat reader y muestre un determinado archivo pdf.
Alguien me puede ayudar con el tema? He estado indagando sobre el tema
y los parámetros en línea con los que trabaja el acrobat pero no he
tenido mucho éxito.

Cristobal Galvan

unread,
Mar 4, 2010, 6:14:48 PM3/4/10
to mundovis...@googlegroups.com
Si tienes el Acrobat instalado en tu pc, ya tienes el OCX, agregalo a un formulario e indicale el nombre del archivo a abrir como parametro

Cristobal E. Galvan Nicasio



> Date: Thu, 4 Mar 2010 15:13:25 -0800
> Subject: [Mundo Visual FoxPro] Ejecutar Acrobat reader desde VFP
> From: ssan...@gmail.com
> To: mundovis...@googlegroups.com
> --
> _______________________________________________________________
> Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
> FoxPro" de Grupos de Google.
>
> Para anular la suscripción a este grupo, envía un mensaje a:
> mundovisualfox...@googlegroups.com


Compartir tus mejores FOTOS es fácil en Messenger ¡DESCUBRE cómo!

Ing.Daniel Bojorge

unread,
Mar 4, 2010, 6:16:34 PM3/4/10
to mundovis...@googlegroups.com
Acá hay otra forma, en el init del form pongo esto


This.AddObject("owb","oleControl","Shell.Explorer.2")
This.oWb.Top = 0
This.oWb.Left = 0
This.oWb.Width = Thisform.Width
This.oWb.Height = Thisform.Height
This.oWb.Visible = .T.
This.oWb.Anchor = 240

This.AddProperty("cPDFFileName","")
This.AddProperty("nPdfLoadTimeout",30)

* Get PDF file name
Thisform.cPdfFileName = Getfile("pdf")

* Display the name in the textbox
This.Caption = Thisform.cPdfFileName
If Not Empty(Thisform.cPdfFileName)
* Display PDF
Thisform.ShowPdf()
Endif



luego el método showpdf contiene esto:

Local lnSeconds
* Clear Web browser control by loading blank page
Thisform.oWB.Object.Navigate2("About:Blank")
* Wait for load to complete
lnSeconds = Seconds()
Do While (Thisform.oWB.Object.Busy Or Thisform.oWB.Object.ReadyState <> 4) ;
AND (Seconds() - lnSeconds) < This.nPdfLoadTimeout
DoEvents
Enddo

* Load PDF
Wait Window Nowait "Cargando PDF ..."
Thisform.oWB.Object.Navigate2(Thisform.cPdfFileName)
* Wait for PDF to load
lnSeconds = Seconds()
Do While (Thisform.oWB.Object.Busy Or Thisform.oWB.Object.ReadyState <> 4) ;
AND (Seconds() - lnSeconds) < This.nPdfLoadTimeout
DoEvents
Enddo
Wait Clear

* PDF display can be adjusted as shown in AdjustPdfView method
*   Uncomment next line if you want to do that and add AdjustPdfView method to the form/class
*This.AdjustPdfView()


Funciona muy muy muy bien...obviamente ese "script" no lo hice yo lo tomé de un sitio, pero no recuerdo cuál en este momento.

Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)

integral

unread,
Mar 5, 2010, 12:56:58 PM3/5/10
to Mundo Visual FoxPro

Que tal :

Suena interesante conocer un poco de tu Sistema de Control de
documentos, yo tambien estoy implemento uno.

Con relacion a tu pregunta te muestro a continuacion como ejemplo un
codigo simple y funcional para ver Archivos PDF

*********************************************************
* Vizualizar Archivos PDF desde un Formulario.
*********************************************************
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
DEFINE CLASS form1 AS form

DoCreate = .T.
Caption = "Visualizar Archivo PDF"
Icon = "C:\CONTROL90\APLICACION\ICONOS\ADOBE_DOC.ICO"
Name = "Form1"
WindowState = 2

ADD OBJECT cmdfile AS commandbutton WITH ;
Top = 12, ;
Left = 12, ;
Height = 27, ;
Width = 144, ;
Caption = "Select File", ;
Name = "cmdfile"

ADD OBJECT cmdexit AS commandbutton WITH ;
Top = 12, ;
Left = 168, ;
Height = 27, ;
Width = 84, ;
Caption = "E\<xit", ;
Name = "cmdexit"

ADD OBJECT olecontrol1 AS olecontrol WITH ;
OLECLASS = "AcroPDF.PDF.1", ;
Top = 48, ;
Left = 12, ;
Height = 192, ;
Width = 348, ;
Name = "Olecontrol1"

PROCEDURE Init
ThisForm.ReSize
ENDPROC

PROCEDURE ReSize
Thisform.Olecontrol1.Height = Thisform.Height + 354
Thisform.Olecontrol1.Width = Thisform.Width + 316
Thisform.Olecontrol1.Refresh()
ENDPROC

PROCEDURE cmdfile.Click
LOCAL cFile
cFile = GETFILE([PDF])
IF !EMPTY(cFile)
Thisform.Olecontrol1.LoadFile([&cFile])
ENDIF
ENDPROC

PROCEDURE cmdexit.Click
ThisForm.Release()
ENDPROC

ENDDEFINE

Saludos,

Gabriel
(Lima-Perú)

Yvan GMAIL

unread,
Nov 9, 2010, 1:26:09 PM11/9/10
to mundovis...@googlegroups.com
Hola Compañeros..

Encontré este correo en el baúl de los trucos.. pero no logro hacerlo
funcionar, aparentemente no logra encontrar esto " AcroPDF.PDF.1".

Existe alguna manera de regístralo.. cual sería su OCX o DLL?

-----Mensaje original-----
De: mundovis...@googlegroups.com
[mailto:mundovis...@googlegroups.com] En nombre de integral
Enviado el: Viernes, 05 de Marzo de 2010 12:57 p.m.
Para: Mundo Visual FoxPro
Asunto: [Mundo Visual FoxPro] Re: Ejecutar Acrobat reader desde VFP


Que tal :

PROCEDURE Init
ThisForm.ReSize
ENDPROC

PROCEDURE cmdexit.Click
ThisForm.Release()
ENDPROC

ENDDEFINE

Saludos,

Gabriel
(Lima-Perú)

--

_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.

Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com

__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 4918 (20100305) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com

Jaime H. Díaz G.

unread,
Nov 11, 2010, 9:22:48 AM11/11/10
to mundovis...@googlegroups.com
Buenos días. Hace algún tiempo en el foro y gracias a la generosidad de los colegas encontré y puse a funcionar lo siguiente sin problemas:

IF FILE(lcNarch)

gcOldDir = SET('DEFAULT') + SYS(2003)

oShell = CreateObject("WScript.Shell")

*ruta = SYS(5)+SYS(2003) && La ruta puede ser "C:\carpeta\mifichero"

ruta = \\192.168.0.199\docum\ofic

oShell.Run("&ruta\certific.pdf",1,.f.) && Ejecuta el Acrobat y abre el fichero .PDF

dxw='SET DEFAULT TO "'+gcOldDir+'"'

&dxw

ELSE

MESSAGEBOX

('No encontró documento',16,'NADA PARA MOSTRAR')

ENDIF

Espero ser de ayuda.....

Reply all
Reply to author
Forward
0 new messages