| |
Posted on December, 07 2022 - 11:27 AM |
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. |
| |
| |
| | | |
|
| | |
| |
Registered member 3,821 messages Popularité : +227 (347 votes) |
|
Posted on December, 07 2022 - 12:38 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Registered member 4 messages |
|
Posted on December, 07 2022 - 3:48 PM |
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". |
| |
| |
| | | |
|
| | |
| |
Registered member 940 messages Popularité : +53 (63 votes) |
|
Posted on December, 07 2022 - 8:06 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Registered member 3,304 messages Popularité : +93 (137 votes) |
|
Posted on December, 07 2022 - 9:31 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Registered member 940 messages Popularité : +53 (63 votes) |
|
Posted on December, 08 2022 - 9:22 AM |
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 |
| |
| |
| | | |
|
| | |
| |
Registered member 3,821 messages Popularité : +227 (347 votes) |
|
Posted on December, 08 2022 - 11:22 AM |
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 |
| |
| |
| | | |
|
| | |
| |
Registered member 4 messages |
|
Posted on December, 08 2022 - 4:21 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Registered member 47 messages |
|
Posted on December, 08 2022 - 4:56 PM |
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. |
| |
| |
| | | |
|
| | |
| |
Registered member 4 messages |
|
Posted on December, 09 2022 - 12:37 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Registered member 940 messages Popularité : +53 (63 votes) |
|
Posted on December, 09 2022 - 12:57 PM |
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 aussiMessage modified, December, 09 2022 - 12:58 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 3,304 messages Popularité : +93 (137 votes) |
|
Posted on December, 09 2022 - 2:29 PM |
Lydie pourquoi un HExtraitMémo Surtout que tu n'utilise pas SQLLitMémo ??? |
| |
| |
| | | |
|
| | |
| |
Registered member 4 messages |
|
Posted on December, 09 2022 - 3:59 PM |
Popoy, c'est la seule solution qui fonctionne ! et pourtant j'en ai essayé beaucoup... |
| |
| |
| | | |
|
| | |
| |
Registered member 793 messages Popularité : +40 (42 votes) |
|
Posted on December, 09 2022 - 6:40 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Posted on December, 20 2022 - 5:58 PM |
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 ?! |
| |
| |
| | | |
|
| | |
| |
Posted on December, 20 2022 - 6:12 PM |
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 |
| |
| |
| | | |
|
| | |