PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Enregistrement et visualisation d'un fichier pdf ?
Enregistrement et visualisation d'un fichier pdf ?
Iniciado por obtuli, 22,oct. 2019 11:39 - 1 respuesta
Miembro registrado
961 mensajes
Publicado el 22,octubre 2019 - 11:39
Bonjour,

J'ai un petit soucis pour enregistrer et visualiser un pdf dans un champ binaire d'une table.
Aucun message d'erreur, mais le logiciel qui ouvre le pdf indique un mauvais format de fichier.
J'ai du louper un truc, j'imagine que c'est un truc banal de gérer des champ de type binaire.

quand je fais un fichier vers écran, le champ IMG_fichier_bin lié au champ binaire de la table reste vide.

Une idée ?
merci

OB

//Pour enregistrer :
SI HAttacheMémo(doc_publics,fichier_bin,SAI_Fichier) = Faux ALORS
Erreur(HErreurInfo())
FIN
EcranVersFichier(FEN_Gestion_admin_doc_public,doc_publics)
SI PAS HAjoute(doc_publics) ALORS
Erreur(HErreurInfo())
SINON
TableAffiche(TABLE_Doc_publics,taCourantEnreg)
FIN

//Aucune erreur ne s'affiche

//pour lire
sFichier_tmp est une chaîne
sFichier_tmp = fTempFile("oi_",fRepTemp())
sFichier_tmp = Remplace(sFichier_tmp,"tmp",doc_publics.extension_fichier) //pour avoit toto.pdf et non toto.tmp
nId_fic est un entier
nId_fic = fCrée(sFichier_tmp)

SI nId_fic <> -1 ALORS
fFerme(nId_fic) //sinon le lecteur de pdf hurle que le fichier est déjà ouvert
Info(ExtraitChaîne(HInfoMemo(doc_publics,fichier_bin),1,TAB)) //renvoi une chaîne vide !!!
SI HExtraitMémo(doc_publics,fichier_bin,sFichier_tmp) ALORS
LanceAppliAssociée(sFichier_tmp) //le lecteur de pdf par défaut indique un mauvais format du fichier
SINON
Erreur(HErreurInfo())
FIN
SINON
Erreur(ErreurInfo())
FIN
Miembro registrado
961 mensajes
Publicado el 22,octubre 2019 - 11:56
J'ai pas vraiment trouvé sans passer par le champ IMG_Fichier_bin, mais ça marche.
Je dois mal utiliser le HAttacheMémo (j'ai suivi la doc)

IMG_Fichier_bin = SAI_Fichier
EcranVersFichier(FEN_Gestion_admin_doc_public,doc_publics)
SI PAS HAjoute(doc_publics) ALORS
Erreur(HErreurInfo())
SINON
TableAffiche(TABLE_Doc_publics,taCourantEnreg)
FIN


//Visu
sFichier_tmp est une chaîne
sFichier_tmp = fTempFile("oi_",fRepTemp())
sFichier_tmp = Remplace(sFichier_tmp,"tmp",doc_publics.extension_fichier)
SI HExtraitMémo(doc_publics,fichier_bin,sFichier_tmp) ALORS
LanceAppliAssociée(sFichier_tmp)
SINON
Erreur(HErreurInfo())
FIN