FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 28
→
Descargar pdf de página web
Descargar pdf de página web
Débuté par Corina, 07 juil. 2017 15:26 - 6 réponses
Connectez-vous…
Corina
#1
Posté le 07 juillet 2017 - 15:26
Buenas,
Estoy accediendo a una página web donde directamente se previsualiza un archivo pdf. ¿Existe alguna forma de poder descargar de forma automática el archivo sin tener que hacer uso de los botones del acrobat?
Gracias de antemano.
Un saludo,
Corina
Signaler
0
0
Ing. Elias Ramos Cantu
#2
Posté le 07 juillet 2017 - 17:06
Con el uso de las funciones iprint y iDestination el PDF debería descargarse en mi caso lo hace
NOTA: Revisa que el navegador dónde lo pruebas no este superponiendo el PDF como vista previa en vez de descargarlo.
Si necesitas mi implementación con gusto te la proporciono.
Saludos
Signaler
0
0
Ing. Elias Ramos Cantù
#3
Posté le 07 juillet 2017 - 17:12
Que tal Corina
Con la implementacion siguiente puedes lograrlo, sin embargo te recomiendo que revises con que navegador lo estas probando ya que algunos previsualizan este contenido en vez de descargarlo.
// Elias Ramos Cantù
// Status: Completo
// Validated: Si
// Summary: Genera el PDF descargable
// Generate a unique PDF file name
AFile
is string
=
fWebDir
(
) +
"\"
+
DateSys
(
) +
TimeSys
(
) +
".pdf"
// Configure the destination of the print
iDestination
(
iPDF
,
AFile
)
// Print the RPT_OrderPDF report
iPrintReport
(
RPT_NoName1
)
// Propose to download the file
// The file name proposed by default will be "Order.pdf"
Name
is string
=
RPT_NoName1
+
DateSys
(
) +
".pdf"
FileDisplay
(
AFile
,
"application/pdf"
,
Name
)
// Delete the file
fDelete
(
AFile
)
Saludos
Signaler
0
0
Ing. Elias Ramos Cantù
#4
Posté le 07 juillet 2017 - 17:12
Que tal Corina
Con la implementacion siguiente puedes lograrlo, sin embargo te recomiendo que revises con que navegador lo estas probando ya que algunos previsualizan este contenido en vez de descargarlo.
// Elias Ramos Cantù
// Status: Completo
// Validated: Si
// Summary: Genera el PDF descargable
// Generate a unique PDF file name
AFile
is string
=
fWebDir
(
) +
"\"
+
DateSys
(
) +
TimeSys
(
) +
".pdf"
// Configure the destination of the print
iDestination
(
iPDF
,
AFile
)
// Print the RPT_OrderPDF report
iPrintReport
(
RPT_NoName1
)
// Propose to download the file
// The file name proposed by default will be "Order.pdf"
Name
is string
=
RPT_NoName1
+
DateSys
(
) +
".pdf"
FileDisplay
(
AFile
,
"application/pdf"
,
Name
)
// Delete the file
fDelete
(
AFile
)
Saludos
Signaler
0
0
Corina
#5
Posté le 10 juillet 2017 - 12:52
Gracias por la respuesta Elias.
Efectivamente, desactivando la previsualización en el navegador se descarga el fichero de forma automática.
La intención es ir un poco más allá, en vez de descargar el archivo, lo que realmente quiero hacer es almacenar ese pdf en un campo binario para posteriormente poder manipularlo evitando así la necesidad del usuario de acceder a la página web de donde se obtuvo dicho pdf.
Podría montar un sistema que coja el fichero descargado y después almacenarlo en el campo binario, pero me preguntaba si realmente lo puedo hacer sin tener que realizar una descarga, como hacer un getvalue o algo por el estilo sobre la página web que me devolviera el pdf...
Gracias, un saludo
Corina
Signaler
0
0
CHRISTIAN D.
#6
Membre enregistré
8 messages
Posté le 10 juillet 2017 - 18:34
Hola Corina, para realizar lo que deseas intenta implementar este algoritmo
IF HTTPRequest("
http://www.pdf995.com/samples/pdf.pdf
") THEN
HReset(TablaBD)
TablaBD.CampoMemo = HTTPGetResult()//Prepara información para ser almacena en la BD
IF HAdd(TablaBD) THEN
ToastDisplay("Achivo pdf descargado y almacenado exitosamente en la BD")
END
ELSE// en caso tal de que se hubiese producido un error al descargar el archivo
ToastDisplay("No se pudo descargar el archivo pdf, del sitio web suministrado")
END
//CREA UN ARCHIVO FÍSICO A PARTIR DEL LA ÚLTIMA INFORMACIÓN ADJUNTADA A LA BD
HReadLast(TablaBD)
NuevonombreArchivo is string = CompleteDir(fCurrentDir())+"ejemplo.pdf"
fSaveBuffer(NuevonombreArchivo,TablaBD.CampoMemo)//Crea archivo a partir del contenido del campo binario
IF fFileExist(NuevonombreArchivo) THEN
FileDisplay(NuevonombreArchivo, "application/pdf") //Descarga el último archivo anexado a la BD
fDelete(NuevonombreArchivo)// Evita que el servidor se sature con archivos
END
Espero sea lo que requiere, Saludos!
--
Christian D.
https://www.linkedin.com/in/cdloaiza/
https://goo.gl/ClbVWL
Signaler
0
0
Corina
#7
Posté le 12 juillet 2017 - 18:51
Christian gracias por responder, en este caso no me sirve el httgetresult()
Al final lo he resuelto pero utilizando la api wininet de windows.
Signaler
0
0
→ Revenir à WINDEV 28
WINDEV 28
WEBDEV 2024
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte