| |
Publicado el 07,diciembre 2022 - 11:27 |
Bonjour à tous,
Ce sujet a déjà été abordé dans le forum. J'ai testé toutes les solutions proposées mais ça ne fonctionne pas, j'ai donc besoin d'aide... A force d'avoir chercher partout, je me demande si ce que je veux faire est possible !
A partir d'une api, je vais rechercher des documents pour les afficher au format PDF. Le fichier JSON que je reçois n'est pas encodé.
ResultatAPI est un JSON ResultatAPI = cRestReponse.Contenu
fSauveBuffer(RepDocPDF+"DocPDF1.pdf",ResultatAPI)
Ca crée bien un PDF mais qui ne peut pas être ouvert car il est endommagé
Voici le début du contenu du fichier JSON reçu ( cRestReponse.Contenu)
%PDF-1.4 %âãÏÓ 1 0 obj << /Creator (Canon iR-ADV 4525 III PDF) /CreationDate (D:20220113115528+01'00') /Producer (\376\377\000A\000d\000o\000b\000e\000 \000P\000S\000L\000 \0001\000.\000\ 3\000e\000 \000f\000o\000r\000 \000C\000a\000n\000o\000n\000\000) endobj 2 0 obj << /Pages 3 0 R /Type /Catalog /OutputIntents 13 0 R /Metadata 14 0 R endobj 4 0 obj << /Type /XObject /Subtype /Image /Width 1240 /Height 1753 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode /DCTDecode ] /Length 35434 >> stream x<1>Ì}<7>\<19>wø÷%,E”Jƒ<21>.......................
Merci beaucoup de votre aide. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.883 mensajes Popularité : +227 (347 votes) |
|
Publicado el 07,diciembre 2022 - 12:38 |
Bonjour, As tu regardé du côté de iImprime Un truc du style
iDestination(iPDFGénérique,saCheminDest) iImprime(cRestReponse.Contenu) iFinImprime()
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4 mensajes |
|
Publicado el 07,diciembre 2022 - 15:48 |
Merci Voroltinquo mais ce n'est pas ce que j'attends. En faisant ce que tu as indiqué, j'ai bien un pdf mais le contenu est le "texte" du JSON et non l'"image". |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 950 mensajes Popularité : +53 (63 votes) |
|
Publicado el 07,diciembre 2022 - 20:06 |
Bonjour,
Ce n'est pas un json que tu recoit mais bien le pdf en buffer
fait juste ca
fSauveBuffer(RepDocPDF+"DocPDF1.pdf",cRestReponse.Contenu)
Jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.335 mensajes Popularité : +93 (137 votes) |
|
Publicado el 07,diciembre 2022 - 21:31 |
Jordan, j'ai l'impression que ça revient à au même code de Lydie Ça serait pas par hasard une histoire d'unicode ou d'ansi |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 950 mensajes Popularité : +53 (63 votes) |
|
Publicado el 08,diciembre 2022 - 09:22 |
Popoy a écrit :
Jordan, j'ai l'impression que ça revient à au même code de Lydie Ça serait pas par hasard une histoire d'unicode ou d'ansi
Oui effectivement ca revient au même, je pensait aussi a ce problème, mais ca évite de stocker le buffer dans une variable et évite une pseudo conversion
Jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.883 mensajes Popularité : +227 (347 votes) |
|
Publicado el 08,diciembre 2022 - 11:22 |
Il faut éventuellement penser à retirer les {} encadrant le résultat (délimitateurs du JSON.)
bufPDF est buffer
bufPDF=cRestRéponse.Contenu[[2 A Taille(cRestRéponse.Contenu)-1]] fSauveBuffer(RepDocPDF+"DocPDF1.pdf"bufPDF)
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4 mensajes |
|
Publicado el 08,diciembre 2022 - 16:21 |
J'avais vu qu'il fallait utiliser l'UNICODE dans l'aide, ce que j'ai mis dans le paramétrage. Je viens donc de tester avec ANSI. Même pb. Il n'y a pas de délimiteur {} dans ce que je reçois. Je vais voir si je peux recevoir ce PDF autrement car je crois que je ne vais pas m'en sortir....
Lydie |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 47 mensajes |
|
Publicado el 08,diciembre 2022 - 16:56 |
Bonjour
il n'y a pas d'information sur l'API qui envoie le pdf. Si c'est une api développée en windev et qui ne renvoie qu'un pdf peut-être la modifier pour qu'elle renvoie un format binaire (et non json) et ajouter WebserviceEcritTypeMIME(typeMimePDF). Mais je ne fais que présupposer que l'api est aussi développée en windev. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4 mensajes |
|
Publicado el 09,diciembre 2022 - 12:37 |
Bonjour à tous,
J'ai enfin trouvé la solution donc je vous la partage si ça peut aider
ResultatAPI est un JSON ResultatAPI = cRestReponse.Contenu
buf est un Buffer = cRestReponse..Contenu
HExtraitMémo(buf,RepDocPDF+sNomDoc+".pdf")
J'obtiens donc le PDF dans son intégralité.
Bonne journée. Lydie |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 950 mensajes Popularité : +53 (63 votes) |
|
Publicado el 09,diciembre 2022 - 12:57 |
lydie martinet a écrit :
Bonjour à tous,
J'ai enfin trouvé la solution donc je vous la partage si ça peut aider
ResultatAPI est un JSON ResultatAPI = cRestReponse.Contenu
buf est un Buffer = cRestReponse..Contenu
HExtraitMémo(buf,RepDocPDF+sNomDoc+".pdf")
J'obtiens donc le PDF dans son intégralité.
Bonne journée. Lydie
Donc juste ca
fSauveBuffer(RepDocPDF+"DocPDF1.pdf",cRestReponse.Contenu)
ca doit fonctionner aussiMensaje modificado, 09,diciembre 2022 - 12:58 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.335 mensajes Popularité : +93 (137 votes) |
|
Publicado el 09,diciembre 2022 - 14:29 |
Lydie pourquoi un HExtraitMémo Surtout que tu n'utilise pas SQLLitMémo ??? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4 mensajes |
|
Publicado el 09,diciembre 2022 - 15:59 |
Popoy, c'est la seule solution qui fonctionne ! et pourtant j'en ai essayé beaucoup... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 795 mensajes Popularité : +40 (42 votes) |
|
Publicado el 09,diciembre 2022 - 18:40 |
Bonjour, ¿le contenu où le PDF est censé être téléchargé n'est-il pas en JSON encodé en Base64 ou similaire? Si le contenu est du texte brut, il peut contenir des caractères comme { } : etc. qui rendraient la structure JSON incorrecte ?
Rubén |
| |
| |
| | | |
|
| | |
| |
Publicado el 20,diciembre 2022 - 17:58 |
Bonjour Lydie,
Je fais face au même type de pb que vous. Je consomme un webservice REST d'un prestataire et je n'ai pas le contrôle sur ce que j'obtiens dans le contenu. la seule chose que j'ai constaté, c'est que si je debug le contenu du retour, il affiche bien l'image du PDF et le format du contenu est de type application/octet-stream. j'ai essayé le fsauvebuffer également sans succès.
à quoi sert de mettre le contenu dans un JSON si vous ne l'utilisez pas après ? Donc c'est vraiment l'affectation du contenu au buffer puis le hextraitmemo qui fonctionnerait ?! |
| |
| |
| | | |
|
| | |
| |
Publicado el 20,diciembre 2022 - 18:12 |
Re, J'avais le même type de pb que Lydie et finalement le fsauvebuffer a fonctionné ! Mon pb est que j'avais voulu sauvegarder les données dans un sous répertoire avec la date du jour, mais du coup le répertoire de destination n'existait pas ! et c'est ça qui bloquait. Avec un frepcrée tout est rentré dans l'ordre |
| |
| |
| | | |
|
| | |