Abrir PD desde VFP

284 views
Skip to first unread message

roberto martinez andrade

unread,
Nov 10, 2020, 3:33:11 PM11/10/20
to Comunidad de Visual Foxpro en Español
Hola, se que hay mucho sobre el tema pero no he podido encontrar alguna opcion nativa para abrir un PDF desde un form. Alguien tiene un dato que pueda utilizar???

Utilice una rutina que publicaron que es  la siguiente:

DECLARE INTEGER ShellExecute IN "Shell32.dll" ;
INTEGER hwnd, ;
STRING lpVerb, ;
STRING lpFile, ;
STRING lpParameters, ;
STRING lpDirectory, ;
LONG nShowCmd

thisform.text1.Value=CURDIR()+"archivos\conductores\conduccion\cae\CAE.pdf"

lcPDFfile = "d:\sysges\sysman\archivos\conductores\conduccion\cae\CAE.pdf"

* Open PDF file
=Shellexecute(0,"Open", lcPDFfile, "","",1)

Pero abre el Acrobat y ademas se abre la vantana para seleccionar impresora.

Cualquier ayuda o recomendacion la agrecere infinitamente

Roberto
Coyhaique - Chile

ZeRoberto

unread,
Nov 10, 2020, 3:53:18 PM11/10/20
to publicesvfoxpro
Abrelo con ActiveX WebBrowser 


Saludos 

Ze 



--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/cf0cfce4-6486-4463-b036-7f9cfbdf7fa1o%40googlegroups.com.

Héctor Reyes

unread,
Nov 10, 2020, 5:00:42 PM11/10/20
to publice...@googlegroups.com
Yo lo resolví de ésta manera:

=ShellExecute(0,"open","sumatra.exe",vpdfcbb,"",1)

sumatra.exe es un visor muy ligero, no se instala, hay versión para 32 y 64 y lo pongo junto con el exe de mi aplicación, aunque tengas definido adobe reader para tus pdf's, se ejecuta el programa que tu indiques.

vpdfcbb en una variable que contiene la ruta y el nombre del archivo a visualizar.

Saludos




--


Saludos

  

Héctor Reyes Hernández

(477) 166-55-66




La presente información es de carácter CONFIDENCIAL y PRIVADO para uso exclusivo del destinatario. Si usted ha recibido este mensaje por error, favor de contactar al remitente y borrar el mensaje y sus anexos. La divulgación, distribución, retransmisión, copia por cualquier medio, u otro uso de esta información está PROHIBIDA y sujeta a las sanciones establecidas en las leyes  correspondientes.

Mauro M.

unread,
Nov 10, 2020, 5:12:09 PM11/10/20
to publice...@googlegroups.com
Si deseas algo mucho más sencillo, pudieras utilizar esto:

  xfile= [Path del directorio y nombre del archivo PDF]
  xvisualizar= "START " + xfile
  RUN /3 &xvisualizar

No es avanzado, pero funciona muy bien.
Coméntame si te sirvió.

-Mauricio

--

roberto martinez andrade

unread,
Nov 10, 2020, 5:51:27 PM11/10/20
to publice...@googlegroups.com
Hola, gracias por tu respuesta.

Una consulta, los nombres de archivo no deben tener espacio, porque me pasó que al poner un nombre como sigue:

"d:\sysges\sysman\archivos\conductores\conduccion\cae\CAE Cesar Rodriguez.pdf"

Aparece un error en la ventana de sumatra que dice:

Error al cargar  d:\sysges\sysman\Rodriguez.pdf"

sin considerar  "conductores\conduccion\cae\CAE Cesar "

Si cambio el nombre del archivo a "CAECR.pdf", el archivo se muestra sin problemas.



roberto martinez andrade

unread,
Nov 10, 2020, 5:59:04 PM11/10/20
to publice...@googlegroups.com
Funciona bien, pero se pierde si los nombres de los archivos tienen espacios. Al utilizar la línea "d:"+curdir()+"archivos\conductores\conduccion\cae\CAE CR.pdf", aparece el error de la imagen. Si suprimo el espacio, carga el acrobat pero me aparece la ventana de impresión que no se como suprimirla.

image.png
image.png
image.png

Héctor Reyes

unread,
Nov 10, 2020, 6:01:44 PM11/10/20
to publice...@googlegroups.com
Efectivamente, no trabaja bien cuando existen espacios en blanco tanto en la ruta como en el nombre del archivo.
No me había sucedido, porque tengo la costumbre de evitar al máximo los espacios en blanco.
Espero te ayude a resolver tu necesidad.


Víctor Hugo Espínola Domínguez

unread,
Nov 10, 2020, 6:42:17 PM11/10/20
to publice...@googlegroups.com
Si el nombre del archivo contiene espacio(s) debe escribirse entre comillas, ejemplo:

lcPdf = ["Dir con espacios\nom archivo con espacios.pdf"]

= ShellExecute(0, "open", "SumatraPDF-3.2-32.exe", lcPdf, "", 1)

Saludos,
Víctor.
Lambaré - Paraguay.



Héctor Reyes

unread,
Nov 10, 2020, 7:09:59 PM11/10/20
to publice...@googlegroups.com
Yo hice una prueba y no funcionó, la variable que uso va todo entre comillas.

Víctor Hugo Espínola Domínguez

unread,
Nov 10, 2020, 8:00:41 PM11/10/20
to publice...@googlegroups.com
Sí funciona con  SumatraPDF-3.2-32.exe  (sumatra portable de 32b)


lcPdf = ["Dir con espacios\nom archivo con espacios.pdf"]

= ShellExecute(0, "open", "SumatraPDF-3.2-32.exe", lcPdf, "", 1) 
 
Saludos,
Víctor.
Lambaré - Paraguay.


Víctor Hugo Espínola Domínguez

unread,
Nov 10, 2020, 8:04:08 PM11/10/20
to publice...@googlegroups.com
la variable que uso va todo entre comillas.

Fíjate en el ejemplo, la variable entre comillas va dentro de un par de corchetes ["nom de variable"]

Saludos,
Víctor.
Lambaré - Paraguay.



El mar., 10 de nov. de 2020 a la(s) 21:09, Héctor Reyes (jouls....@gmail.com) escribió:
Message has been deleted
Message has been deleted

Zarlu

unread,
Nov 11, 2020, 12:31:47 AM11/11/20
to Comunidad de Visual Foxpro en Español
Buenas noches foxeros!

El comentario de jouls.hector me ayudó a encontrar mupdf.exe. Gracias
Algo que tenía pendiente de resolver era visualizar PDF sin barras de herramientas.
Aquí les dejo un prg. No resuelve el tema central del mensaje inicial, pero espero a alguien le sirva
Se requiere mupdf.exe. Al inicio del prg también está el link de descarga.

Para robertomartinezandrade:
quizá tu línea debe ser así....
lcPDFfile=["d:]+curdir()+[archivos\conductores\conduccion\cae\CAE CR.pdf"]

Así, tal cual te dicen los colegas, no tendrás problemas con los espacios en blanco en la cadena.

zarlu
Chetumal, Quintana Roo, México
solovisorpdf.prg

James Suárez

unread,
Nov 11, 2020, 1:27:57 AM11/11/20
to publice...@googlegroups.com
Hay una app pdftopng como su nombre lo dice, convierte un pdf a varios png (1 por página) Puede ser útil para mostrar de manera más nativa. 

Fernando Mora

unread,
Nov 13, 2020, 11:17:37 PM11/13/20
to Comunidad de Visual Foxpro en Español
Para abrir un PDF dentro de un formulario uso el siguiente código, (se requiere tener instalado Acrobat)

lcArchivoPDF='ruta_archivo_pdf'
Public oform1
oform1=CreateObject("VisorPdf")
oform1.Show()
oForm1.oPdfCtrl.LoadFile(lcArchivoPDF)
oForm1.Refresh()
Release oform1
Return

*------- CREACION DE FORMULARIO
Define Class VisorPdf As Form
Height = 600
Width = 800
AutoCenter = .T.
Caption = "Visualizar Archivos PDF"
Name = "verpdf"
BorderStyle = 2
Closable = .T.
MaxButton = .F.
MinButton = .F.
ControlBox = .T.
ShowWindow = 0
WindowType = 0
*-- Conrol Acrobat
Add Object oPdfCtrl As OleControl With ;
OleClass = "AcroPDF.PDF.1" , ;
Top = 30, ;
Left = 10, ;
Height = 560, ;
Width = 780, ;
Anchor = 15, ;
Name = "oPdfCtrl"
EndDefine

Reply all
Reply to author
Forward
0 new messages