Abrir archivo PDF con Google Chrome

265 views
Skip to first unread message

integral

unread,
Dec 6, 2023, 6:21:51 PM12/6/23
to Comunidad de Visual Foxpro en Español
Que tal amigos

Estoy creando los archivos PDF con una impresora virtual que viene instalada con el Windows 10.

Aquí el código que utilizo.

SET PRINTER TO "Microsoft Print to PDF"
REPORT FORM Rep_Stock.frx  Noconsole to file &arch_pdf

Mi problema ahora es abrir el archivo creado de forma automática con el Google Chrome.

Algun colega que me pueda ayudar a hallar  la solución

Saludos,

Integral

Zarlu

unread,
Dec 6, 2023, 6:36:04 PM12/6/23
to Comunidad de Visual Foxpro en Español
Buenas tardes Intregral!

Quizá así:
DECLARE INTEGER ShellExecute IN Shell32;
INTEGER hwnd,;
STRING @lpOperation,;
STRING @lpFile,;
STRING @lpParameters,;
STRING @lpDirectory,;
SHORT nshow
ShellExecute(0,'open',"chrome.exe","c:\orders.pdf",'',1)


Suerte
zarlu
Chetumal, Quintana Roo, México

integral

unread,
Dec 6, 2023, 11:49:24 PM12/6/23
to Comunidad de Visual Foxpro en Español
Gracias Amigo Zarlu

Resulto fácil crear el archivo PDF hoy al medio día implemente el código. y con la rutina enviada logre abrir el archivo creado con el Google Chrome.

Tan solo hace falta hacer unos pequeños ajustes.

Gracias

Hasta la próxima.

Saludos,

Integral
VISUALIZAR_PDF_EN_GOOGLE_CHROME.jpg

integral

unread,
Dec 7, 2023, 2:02:59 PM12/7/23
to Comunidad de Visual Foxpro en Español

Que tal Amigos .

Al tratar de crear el nombre el archivo PDF mediante una variable ahora al abrir el PDF con el Google Chrome me muestra un mensaje y al dar click en Volver a cargar aparece el 
documento PDF creado

Aquí copio el código que estoy utilizando.

     ArchiPdf = lcTextPDF + ".PDF"

DECLARE INTEGER ShellExecute IN Shell32;
INTEGER hwnd,;
STRING @lpOperation,;
STRING @lpFile,;
STRING @lpParameters,;
STRING @lpDirectory,;
LONG nShowCmd
    lcPDFfile = 'C:\MIGRACONSU\ERP_CONSUMO\REPORTS\' + ArchiPdf
    ShellExecute(0,"open","chrome.exe",m.lcPDFfile,"",0)

Adjunto una imagen donde se puede apreciar el mensaje...

Agradezco sus comentarios y sugerencias.

Atte.,

Integral
ERROR_GOOGLE_CHROME.jpg
Message has been deleted

Zarlu

unread,
Dec 7, 2023, 3:34:36 PM12/7/23
to Comunidad de Visual Foxpro en Español
Qué tal Integral!

Quizá debas darle un tiempo de espera entre crear y abrir

Suerte
Zarlu
Chetumal, Quintana Roo, México

Carlos X. Montes

unread,
Dec 7, 2023, 3:51:33 PM12/7/23
to publice...@googlegroups.com
Intenta con

run /N  "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" C:\Users\cmontes\Desktop\E-WAPI.pdf


El jue, 7 dic 2023 a la(s) 15:31, Zarlu (not...@prodigy.net.mx) escribió:
Qué tal Integral!

Presiento que es la versión de Windows con la distinción de mayúsculas/minúsculas

Te sugiero la siguiente prueba con ese mismo archivo que te da error...

Copia en la barra del navegador el path y archivo tal cual te lo muestra el explorador de windows respetando mayúsculas y minúsculas.

Suerte
Zarlu
Chetumal, Quintana Roo, México
--
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/c3470fdb-07ce-45ff-b54c-309451760af4n%40googlegroups.com.

Damian Lana

unread,
Dec 7, 2023, 4:06:39 PM12/7/23
to publice...@googlegroups.com
Integral buenas tardes, en mi caso lo hago con  foxypreviewer, genero el reporte con preview lo abre en el programa predeterminado de pdf

LSetreportbehavior = SET("ReportBehavior")

Do Locfile("FoxyPreviewer.App")

REPORT FORM Rep_Stock.frx  Noconsole object Type 10   to file &arch_pdf  PREVIEW

Set reportbehavior 80
Set reportbehavior   &LSetreportbehavior  




integral

unread,
Dec 7, 2023, 4:57:16 PM12/7/23
to Comunidad de Visual Foxpro en Español
Que tal Amigos :

Gracias por sus comentarios y sugerencias.

Efectivamente amigo Zarlu era cuestión de darle un minuto y medio de tiempo y listo funciona a la perfección.

Amigo Damian te comento que cuando programaba en VFP 6.0 utilizaba al principio el Pdf Creator y algunos otros programas pero con las apariciones de los nuevos sistemas operativos surgieron algunos problemas hasta que descarte la opción de crear los PDF's.

Ayer me puse a revisar en el foro varias consultas del tema y encontré como una opción al  foxypreviewer entre otras y encontré también varios casos de problemas con dicha App.

Hasta que por ahí alguien comento que era fácil y sencillo utilizar el Microsoft Print to PDF hice la prueba con solo 2 lineas de codigo y funciono muy bien.

Gracias nuevamente a todos. Adjunto imágenes de los resultados.

Hasta la próxima.

Atte.,

Integral
Proceso Pantalla_PDF.jpg
ABRIENDO ARCHIVO PDF CREADO.jpg

Zarlu

unread,
Dec 7, 2023, 5:36:40 PM12/7/23
to Comunidad de Visual Foxpro en Español
Qué bien Integral!

He escrito un poco a  prisa...
Creo que "para esperar" sería mejor que con un ciclo (y un algún mensaje dinámico) verifiques se haya creado el PDF. De esa manera no tendrías que esperar mucho o poco, dependerá de la velocidad de la pc entre otros factores.

Suerte
zarlu
Chetumal, Quintana Roo, México

integral

unread,
Dec 7, 2023, 6:11:12 PM12/7/23
to Comunidad de Visual Foxpro en Español
Que tal Amigo Zarlu

Hice una prueba en una laptop i3 con 8 de memoria  

WAIT WINDOW "[ Abriendo el archivo PDF... : " + Archipdf + " ]"  TIMEOUT .5               

Un proceso de 15 paginas y lo hace bien rapido.

Gracias amigo por tu apoyo.

Saludos,

Integral
TIEMPO DE PROCESO.jpg

José Antonio Peña Martínez

unread,
Dec 7, 2023, 6:46:51 PM12/7/23
to publice...@googlegroups.com
Integral, Zarlu tiene razón, haz de una vez un ciclo de espera para que no tengas problema con diferentes capacidades de equipos ...

el ciclo sería algo como esto:

WAIT windows "Generando PDF, espere ... (Esc Cancelar)" NOWAIT NOCLEAR
DO WHILE !FILE(ALLTRIM(XmlFile) + ".pdf") AND INKEY()<>27
ENDDO
WAIT clear
IF FILE(ALLTRIM(XmlFile) + ".pdf")

else

endif




Saludos!



--
Desarrollo de Sistemas TecnoPro
José Antonio Peña

Saludos!

integral

unread,
Dec 7, 2023, 10:23:31 PM12/7/23
to Comunidad de Visual Foxpro en Español
José Antonio

Te agradezco por el código mostrado.

En verdad el comando Do White ya no lo utilizo desde que programaba en Foxpro 2.6 para D.O.S.

En resumen el proceso que realizo para crear el archivo PDF lo hace de forma correcta y rapida. 

Luego que creo el archivo PDF. Verifico si existe el archivo y de existir luego de la validación utilizo la rutina para abrir con el Google Chrome el archivo PDF...

Adjunto una imagen que muestra parte del proceso que realizo.

Atte.,

Integral
REALIZANDO PROCESO.jpg

José Antonio Peña Martínez

unread,
Dec 7, 2023, 10:40:16 PM12/7/23
to publice...@googlegroups.com
Cuando ejecutes el mismo programa en otro equipo de la red (no se cuantos equipos tengas con tu sistema) algunos responderán más lento, por x causa, esos equipos te darán error si el PDF aun no se crea, si no ha terminado de hacerlo el equipo simplemente no tendrá archivo por abrir y el usuario deberá volverlo a generar ...

En esto de la programación son gustos ... Suerte.

Saludos!

integral

unread,
Dec 8, 2023, 11:53:01 AM12/8/23
to Comunidad de Visual Foxpro en Español

Buenos Días

Lo que planteas es un supuesto que todo programador debe tener en cuenta al momento de la validación. Y de esta forma evitar fallos en el Sistema.

Cada cliente posee una PC o Laptop de diferentes características. Pero al igual que las matemáticas existirá mas de una forma de realizar dicha validación.

Con el transcurrir de los años mi forma de programar y los comandos a utilizar a ido mejorando.  A lo largo de mas de 20 años tuve 2 jefes de programación que me enseñaron los buenos hábitos de la programación. Así como también los ejemplos aprendidos de algunos expertos de este foro que en su momento cuando los necesite me ayudaron y les estoy eternamente agradecido y además seguí sus consejos como el de aprender la utilización de los Comandos del SQL de VFP. Que me sirvió en la migración a la Base de Datos...

Me queda claro que cada uno adopta un estilo de programar y lo respeto.

Copio el código que realiza la validación de la creación del archivo PDF.
 
Ej.-
        IF FILE('C:\MIGRACONSU\ERP_CONSUMO\REPORTS\PDFS\' + ArchiPdf)              && Busca si fue Creado el Archivo PDF
        lresptaPdf = Messagebox("Archivo " + ArchiPdf + " Generado." + CHR(13) + ;
                             "¿ Desea Visualizar el Archivo PDF ?", 4+32+256,"Aviso del Sistema")
        Do CASE
               CASE lresptaPdf = 6                                             && SI

           
  DECLARE INTEGER ShellExecute IN Shell32;
INTEGER hwnd,;
STRING @lpOperation,;
STRING @lpFile,;
STRING @lpParameters,;
STRING @lpDirectory,;
LONG nShowCmd
    lcPDFfile = 'C:\MIGRACONSU\ERP_CONSUMO\REPORTS\PDFS\' + ArchiPdf
    ShellExecute(0,"open","chrome.exe",lcPDFfile,"",0)
 
 
        ELSE
            MESSAGEBOX("El Archivo : " + ArchiPdf + " No se ha podido Crear.",16+0,TITLE_LOC)
            RETURN .F.
        ENDIF

Hasta la próxima

Integral
(Lima-Perú)
AVISO PDF.jpg

José Antonio Peña Martínez

unread,
Dec 8, 2023, 2:02:06 PM12/8/23
to publice...@googlegroups.com
Te vuelvo a repetir lo mismo, no es lo mismo validar que exista un PDF a esperar que exista... Saludos y suerte.

Ramón Rodríguez Martínez

unread,
Dec 8, 2023, 2:06:47 PM12/8/23
to Comunidad de Visual Foxpro en Español
Uniocamente tienes que invertir las diagonales :

C:/MIGRACONSU/ERP_CONSUMO/REPORTS\PDFS/' + ArchiPdf
Reply all
Reply to author
Forward
0 new messages