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

Windows Forms Discussion :

[C#] Visualisation d'un PDF dans un WebBrowser


Sujet :

Windows Forms

  1. #1
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut [C#] Visualisation d'un PDF dans un WebBrowser
    Bonjour,

    Je suis quelque peu bloqué avec le WebBrowser. Sur une fenêtre j'ai une liste de fichier PDF. Lorsque je clique sur un fichier de cette liste, une copie du fichier est réalisée (pour ne pas monopoliser le fichier source) et celle-ci est affichée dans le WebBrowser (Acrobat Reader installé).

    Le problème survient lorsque je choisis un autre fichier de la liste. La copie ne peut se faire puisque le fichier est utilisé par le WebBrowser. J'ai bien essayé de procéder ainsi avant de faire la copie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.webBrowser1.Url = null;
    mais ca ne règle pas le problème.

    Etrangement, si je place un bouton et que dans l'événement Click de ce bouton je place le code précédent, après avoir cliqué sur le bouton je peux alors choisir un autre fichier sans avoir d'erreur.

    Je ne sais pas trop comment procéder.
    Pas de questions techniques par MP

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Et si tu passes par une URL intermédiaire ?
    Du genre une pauvre page HTML "Chargement....", juste le tps de faire la copie.
    (avec un ptite temporisation des fois que le WebBrowser ne lâche pas le fichier tout de suite)

  3. #3
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Ca ne change rien. A priori je ne peux pas mettre l'URL à null, faire ma copie et ensuite mettre la bonne URL tout ca au sein du même bloc. C'est assez bizarre.

    Ce code ne fonctionne pas, erreur lors de la copie car le fichier est déjà pris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string source = listBox1.SelectedItem.ToString();
        string dest = @"C:\preview.pdf";
        this.webBrowser1.Url = null;
        File.Copy(source, dest, true);
        this.webBrowser1.Url = new Uri(dest);
    }
    Ce code fonctionne (clic sur le bouton pour libérer le fichier et sélection ensuite pour l'afficher)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string source = listBox1.SelectedItem.ToString();
        string dest = @"C:\preview.pdf";
        File.Copy(source, dest, true);
        this.webBrowser1.Url = new Uri(dest);
    }
     
    private void button1_Click(object sender, EventArgs e)
    {
        this.webBrowser1.Url = null;
    }
    Celui-ci aussi (sélection pour libérer le fichier et clic sur le bouton pour l'afficher)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.webBrowser1.Url = null;
    }
     
    private void button1_Click(object sender, EventArgs e)
    {
        string source = listBox1.SelectedItem.ToString();
        string dest = @"C:\preview.pdf";
        File.Copy(source, dest, true);
        this.webBrowser1.Url = new Uri(dest);
    }
    Mais le tout dans au sein du même bloc, ca ne fonctionne pas.

    Pour le moment, je vais générer un fichier preview0.pdf, preview1.pdf, ... en utilisant l'index du document sélectionné dans la liste.

    Si jamais quelqu'un à la solution au problème (i.e. en utilisant un seul fichier temporaire), je suis quand même preneur.
    Pas de questions techniques par MP

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Bon, je vais utiliser plusieurs fichiers temporaires, ca fonctionne bien alors je vais faire ainsi. On oublie l'utilisation d'un fichier unique.

    Il me reste à voir comment trouver le processus qui à la main sur un fichier pour pouvoir le stopper lorsque je voudrais supprimer les fichier temporaire.
    Pas de questions techniques par MP

  5. #5
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Et en mettant une url "bidon", genre l'url d'une page HTML locale qui ne contient qu'un <h3>Chargement...</h3> ?

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

Discussions similaires

  1. [XL-2003] Problème pour visualiser un PDF dans un webbrowser
    Par stefan69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/11/2010, 14h10
  2. [AC-2003] Importer et visualiser un pdf dans un formulaire
    Par fredpertuy dans le forum IHM
    Réponses: 12
    Dernier message: 08/12/2009, 16h26
  3. Fermer un pdf ouvert dans un webbrowser!
    Par NejNej dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/10/2008, 15h52
  4. Visualiser des pdf dans un panel
    Par smendou dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 12/06/2008, 09h47

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