IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Afficher du contenu PDF obtenu par fetch


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 522
    Points : 544
    Points
    544
    Par défaut Afficher du contenu PDF obtenu par fetch
    Bonjour à toutes et à tous,

    J'ai une page web qui interroge une API à l'aide d'un fetch()
    La réponse obtenue est le contenu d'un fichier PDF que je voudrait afficher dans un nouvel onglet

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     fetch("url_api", {
                method: 'POST',
                body: formData,
     
            }).then((response) => response.text())
            .then((text) =>{
     
                var   newWindow = window.open();
     
                newWindow.document.write( text);
            }
    Ce code ouvre bien un nouvel onglet au lieu d'afficher le PDF, j'ai "sa description"
    %PDF-1.5 2 0 obj << /Filter /FlateDecode /Length 8 /Length1 0 >> stream x endstream endobj 3 0 obj << /Type /Page /Parent 1 0 R /MediaBox [0 0 842.25 595.50 ] /Resources
    .......
    ......
    /Root 5 0 R /Info 4 0 R /ID [] >> startxref 732 %%EOF
    Est-ce que quelqu'un a une solution pour l'afficher "proprement"?
    7 fois à terre, 8 fois debout

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 136
    Points : 44 934
    Points
    44 934
    Par défaut
    Bonjour,
    regarde du côté de response.blob() plutôt que d'utiliser response.text().

    Ressources :

  3. #3
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 522
    Points : 544
    Points
    544
    Par défaut
    Bonjour,

    Merci pour le coup de pouce!

    Je ne suis pas arrivé à mes fins avec response.blob() mais j'ai trouvé un plan B
    Une autre version de l'api me permet d'avoir le contenu du PDF codé en base 64 du coup j'ai ça qui fonctionne!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     fetch("url_apiV2", {
                method: 'POST',
                body: formData,
     
            }).then((response) => response.text())
            .then((myText) =>{
     
                var   newWindow = window.open();
                newWindow.document.write( '<embed src="data:application/pdf;base64,'+myText+'" width="100%" height="100%" type="application/pdf"/>');
    7 fois à terre, 8 fois debout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/02/2024, 17h12
  2. Affiché le contenu du dossier par page de 20
    Par dercom dans le forum Langage
    Réponses: 6
    Dernier message: 28/08/2013, 00h48
  3. Réponses: 62
    Dernier message: 25/01/2007, 17h27
  4. Réponses: 1
    Dernier message: 02/01/2007, 20h55
  5. [VB6] Afficher le contenu d'un Pdf dans une form
    Par joquetino dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 04/08/2006, 20h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo