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

VB.NET Discussion :

Afficher un pdf dans une pictureBox ?


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut Afficher un pdf dans une pictureBox ?
    Bonjour mes amis,

    Une simple question toute bête, comment fait on pour pouvoir afficher un pdf dans une pictureBox puisqu'elle ne lit que les .bitmap, .jpeg... Dois-je la convertir ? et si oui comment ? Dois-je utiliser un autre contrôle ? et si oui lequel ?

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Pourquoi ne pas utiliser un webbrowser à la place ?
    Suffit de virer les boutons que tu ne veux pas voir ;-)

    Correction : Y a même pas de bouton à virer XD
    Kropernic

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Bon alors je viens de faire ça mais le problème c'est que quand j'affiche le pdf il m'affiche ... bah je ne sais pas trop quoi en fait XD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WebBrowserApercu.DocumentStream = New FileStream("C:\CheminFichier.pdf", FileMode.Open)
    Résultat :


  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ouch !! Donne lui simplement l'url de ton fichier. (si jamais tu as un doute, ouvre ton pdf avec ton browser favori et regarde l'url)
    Kropernic

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    J'ai bien essayé de mettre direct l'url mais dans ce cas là il me dit

    Impossible de convertir de convertir une valeur de type "String" en "System.IO.Stream"
    C'est pourquoi je suis passé par cette syntaxe...

  6. #6
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Je me penche sur la question... Je sais que je l'ai déjà fait mais là quand je teste, il me propose une boite de dialogue pour ouvrir le document qui donc l'ouvre avec acrobat reader ce qui n'est pas le résultat voulu.

    Je reviens vers toi dès que j'ai qqch de concret.
    Kropernic

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    D'après ce que je lis sur le net, ceci devrait fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Dim path As String = "C:\Documents and Settings\geoffroy.INNO\Desktop\GsaGuide.pdf"
            'WebBrowser1.Url = New Uri(path)
            browser.Navigate(path)
    Mais bizarrement, chez moi, cela n'ouvre pas le document dans le browser mais dans acrobat reader... As-tu le même comportement ?

    P.S. : la ligne en commentaire fait la même chose que l'instruction Navigate.
    Kropernic

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Ouai c'est pareil il m'ouvre acrobat mais sur l'onglet de mon application (enfin dans le webBrowser quoi ^^) ce qui ne me gêne pas du tout puiqu'au final tout ce que je veux c'est que mon utilisateur puisse visionner le résultat, c'est même encore mieux puiqu'il dispose des fonctionnalités d'acrobat!

    Merci bien griftou ça fait 2 fois en 2 jours que tu me sors du pétrin

    Peut être qu'un jour je pourrais te rendre la pareil

  9. #9
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ok, c'est donc un souci au niveau de la config de ma machine (pourquoi ça ne m'étonne même plus ? ^^).

    Va falloir que je pense à la réinstaller un de ces quatre XD.

    Ravi d'avoir pu aider :-)

    Attention : Je pense qu'il est tout de même nécessaire que l'utilisateur ait acrobat installé sur sa machine au préalable (mais tu dois pouvoir faire en sorte que ce soit le cas dans le projet d'installation et de déploiement). Mais bon, je pense que les ordis où ce n'est pas le cas doivent se faire rares de nos jours.
    Kropernic

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Bon bah nouveau souci :

    mon aplli crée un pdf que j'affiche dans mon webBrowser, tout ça ça marche nickel, le problème c'est que si je continu le traitement, c'est à dire que mon user n'est pas satisfait du pdf et qu'il veut en générer un autre, ce n'est pas possible puisque le pdf est en cours d'utilisation dans le wb et que je ne peux donc pas le delete pour en faire un autre ...

    J'ai essayé un nombre incalculable de méthodes et de propriétés du wb mais impossible de libérer le pdf, je pense donc que la solution est de récupérer le pdf lui-même par le code et de le fermer de force avant de le regénérer, le problème c'est que je n'ai aucune idée de comment faire ça

    désolé pour mon incompétence mais je suis débutant en vb...

  11. #11
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Pas de souci, ça m'occupe ^^

    Ce qu'il faut, c'est que tu arrêtes de l'afficher dans le webbrowser.

    Qu'as-tu essayer exactement? As-tu essayer de fermer la fenêtre qui affiche le webbrowser ? Si cela ne suffit, il faut alors assigner Nothing à cette fenêtre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    maFormQuiContientLeWebbrowser.Dispose()
    maFormQuiContientLeWebbrowser = Nothing
    Essaie ceci pour libérer le document. Cela implique évidemment que tu affiches le document dans une fenêtre secondaire ;-).
    Kropernic

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Euh oui mais non ^^
    parce que la forme qui contient le wb c'est mon appli, c'est à dire que j'utilise un tabPane et le wb c'est l'un des onglets.

    J'ai essayé :

    - dispose() sur le wb mais du coup je ne peux plus m'en servir
    - new() pour le forcer à se "vider" mais il n'apparaît même plus quand je lui donne le navigate() (même avec bringToFront() et visible = True)
    - createControl() pour qu'il se réinstancie mais ça fait que dalle
    - monWebBrowser.url = nothing
    - monWebBrowser.navigate(nothing)(marche pas parce qu'il veut une String)
    - monWebBrowser.goBack pour qu'il revienne en arrière c'est à dire quand il est vide mais il ne fait rien
    - plein d'autres trucs que je ne me rappelle plus...

    à chaque fois ça plante sur la génération du pdf
    Le processus ne peut pas accéder au fichier 'C:\CheminFichier.pdf' car il est en cours d'utilisation par un autre processus
    Et effectivement il est ouvert par mon wb, c'est pour ça que je pense qu'il faut que je l'atteigne directement sur le système pour le fermer...
    Mais ce n'est qu'une idée de noob, il y a peut être beaucoup plus simple et plus efficace

  13. #13
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    'tain, avec mon truc bizarre qui me l'ouvre dans adobe hors de l'appli, j'vais avoir du mal à tester...

    Me reste plus qu'à raisonner logiquement... je vais voir pour tester avec un autre type de document.

    Question : Quelle version de VS utilises-tu ?
    Kropernic

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Citation Envoyé par griftou Voir le message
    Question : Quelle version de VS utilises-tu ?
    Visual Studio 2010

  15. #15
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bon, je suis sur VS2005 mais à priori, ceci devrait fonctionner chez toi (j'espère).

    J'ai testé ceci en ouvrant un fichier texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Class Form1
        Dim filename As String
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            If od.ShowDialog = Windows.Forms.DialogResult.OK Then
                filename = od.FileName
                browser.Navigate(filename)
            End If
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            browser.Navigate("")
            IO.File.Delete(filename)
        End Sub
    End Class
    C'est donc un projet bidon on ne peut plus simple. J'ai une form avec un webbrowser, un openfiledialog et un bouton.
    Au démarrage (Load), l'openfiledialog me permet de choisir le fichier à afficher. Je choisis un fichier .txt (ici pour le test) et il s'affiche parfaitement dans le browser. Ensuite je clique sur le bouton, le browser redevient blanc et mon fichier est supprimé.

    J'espère que le fait qu'il s'ouvre dans adobe dans ton browser ne va pas poser de problème. Peux-tu tester stp ?
    Kropernic

  16. #16
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Je viens de tester et l'idée m'a l'air bonne mais le souci c'est que ça me fait la même chose, la ligne de commande pour le delete plante parce que le fichier est toujours ouvert...


    le problème vient peut être de cette ligne (c'est ici que ça plante à chaque fois...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fs As New FileStream("C:\Users\stagiaire-info2\Desktop\FT_IDTracteur_Code.pdf", FileMode.Create)
    C'est le filestream dont je me sers pour générer le pdf

  17. #17
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    As-tu les droits suffisant sur ce folder ?

    On ne sait jamais hein ^^

    Sinon, peux-tu essayer avec un fichier texte pour voir si ça marche ?
    Kropernic

  18. #18
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Avec un fichier .txt ça marche sans aucun problème

    Tu crois que le problème viendrait d'acrobat du coup ?

  19. #19
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ouais, y a des chances qu'ouvrir ce pdf fasse qu'il lance un process d'adobe en arrière plan...

    Je checke ce que j'ai à ce sujet ^^
    Kropernic

  20. #20
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Essaie ceci pour voir

    A placer avant la création du nouveau fichier donc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    browser.DocumentStream.Close()
    Kropernic

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/05/2010, 17h45
  2. Réponses: 1
    Dernier message: 05/06/2009, 10h05
  3. Afficher un PDF dans une fenêtre
    Par chpounz dans le forum wxPython
    Réponses: 3
    Dernier message: 19/03/2009, 19h36
  4. afficher un pdf dans une page web
    Par amico125 dans le forum JSF
    Réponses: 0
    Dernier message: 27/02/2009, 17h45
  5. [PDF] Afficher un pdf dans une page web
    Par hutchuck dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/01/2006, 11h21

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