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 :

Ajouter un fichier pdf à mon application


Sujet :

VB.NET

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Ajouter un fichier pdf à mon application
    Bonjour,

    Je souhaite ajouter un doc pdf à mon application afin de le distribuer avec cette dernière et de permettre à l'utilisateur de l'ouvrir.

    Ce post fait suite à l'une des réponses de SaumonAgile (voir ci dessous) sur un autre petit soucis que j'ai eu.

    Citation Envoyé par SaumonAgile Voir le message
    Comment publies-tu ton application ?

    EDIT : Si tu utilises ClickOnce, tu peux dans les propriétés du projet, ajouter ton fichier comme data file. Il faut qu'au préalable ton fichier PDF soit inclus dans le projet à publier.
    J'ai mis ce doc pdf dans un fichier de mon projet qui s'appelle resource.
    Je souhaiterai savoir comment l'appeler car la méthode que j'ai utilisé de fonctionne pas. (Voir ci-dessous):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Dim chemin As String = ("Pertes de charge EU.pdf")
            Dim p As New Process
            p.StartInfo.FileName = chemin
            p.StartInfo.CreateNoWindow = True
            p.Start()
    Je pense que mon problème viens de chemin qui n'ai pas déclaré comme il faut, mais je sais pas du tout comment le déclarer.

    Quelqu'un peut-il m'aider?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Là je désespère.
    Personne ne peut m'aider????

  3. #3
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    En C# ça donne un truc dans le genre:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //on vérifie si c'est un déploiement clickonce
    if (ApplicationDeployment.IsNetworkDeployed)
    {
         try
         {
               String chemin = ApplicationDeployment.CurrentDeployment.DataDirectory + @"monFichier.pdf");
         }
         catch (Exception ex)
         {
               MessageBox.Show("Could not read file. Error message: " + ex.Message);
         }
    }

  4. #4
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Et en vb.net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'on vérifie si c'est un déploiement clickonce
    if (ApplicationDeployment.IsNetworkDeployed) Then
         Try
               Dim chemin As String =  ApplicationDeployment.CurrentDeployment.DataDirectory + "monFichier.pdf") 
         Catch ex As Exception
               MessageBox.Show("Could not read file. Error message: " + ex.Message)
         End Try
    End If

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Je suis ok sur le principe.
    Par contre je dois déclarer ApplicationDeployment et là je bloc à nouveau.

  6. #6
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using System.Deployment.Application;
    Visual Studio te dis ce qu'il faut importer...

  7. #7
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Avec ton code Visual Studio me dit que c'est un espace de nom et qu'il ne peut être utilisé en tant qu'expression.

    Je ne connais pas le C# mais en VB normalement je devrais avoir un code du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ApplicationDeployment as   '...

  8. #8
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    l'équivalent du using en VB est "import".
    C'est le truc qu'il faut mettre tout en haut de ton code.

  9. #9
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Non c'est : Imports l'équivalent en vb.net
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Imports System.Deployment.Application ' a placer en premier dans une form

  10. #10
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Ok je n'avais pas fait le rapprochement entre using et imports.

    Je n'ai plus de problème dans mon code, par contre si je publie l'applic et que j'appelle le doc, c'est le messagebox qui apparait en me disant que le fichier est introuvable.

    Si je vais regarder sur mon pc le répertoire où à priori l'applic est installée je ne trouve le doc pdf en question.

    Celui-ci n'est donc à priori pas installé au bon endroit.
    Lors de la publication je suis quasi certain qu'il est bien pris en compte puisque mon dossier d'installation (là où il y a le setup) est beaucoup plus gros que s'il ne fait pas parti de mon projet

  11. #11
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    @ Aspic: ça t'amuses de me suivre comme ça ?

    Bon sinon, je pense qu'il faut reprendre le problème depuis le début. Comment as-tu insérer ton doc dans ton projet (je veux la manip exacte !) ?

  12. #12
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Pour insérer le doc dans mon projet:

    Clique droit sur le nom de mon projet, puis clique gauche sur propriétés.
    Là apparait une fenêtre avec plusieurs onglets (application, compiler, déboguer...)
    Parmi ces onglets, l'onglet ressources.
    Une fois que j'ai cliqué sur cet onglet, j'ai la possibilité d'ajouter une resource.

    Là je peux ajouter un image, un fichier text... et un fichier existant.
    Ensuite il m'a suffit d'aller chercher le fichier en question.

    Le dossier resources s'est créé automatiquement dans mon mon projet avec à l'intérieur le fichier pdf.

    Voici précisément ce que j'ai fait...

    J'ai pu voir dans différent tuto, une manip en ajoutant le nouvel élément assistant à la publication si j'ai bonne mémoire. Le souci c'est que cet élément ne fait pas parti des éléments que je peux ajouter...
    Donc j'ai arrêté dans ce sens.

  13. #13
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut Properties.Resources.dotnetfan_petit;
    c'est bien ce qui me semblait. Si tu passes par l'onglet ressources, ton fichier pdf sera inclut à l'intérieur de ton .exe. Pour le récupérer il faut passer par (c'est du code C#)

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Properties.Resources.monfichierpdf;

    La technique qu'on t'a indiqué précedemment était dans le cas où ton fichier n'était pas inclut en tant que ressource mais simplement copier avec les fichiers de ton prog (donc tu peux le voir dans l'explorateur Windows). Pour cela il suffit de faire un clic droit sur ton prjet et de choisir Ajouter un élément existant, puis de choisir ton pdf. Il sera visible dans l'arborescence du projet.

  14. #14
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par The_badger_man Voir le message

    La technique qu'on t'a indiqué précedemment était dans le cas où ton fichier n'était pas inclut en tant que ressource mais simplement copier avec les fichiers de ton prog (donc tu peux le voir dans l'explorateur Windows). Pour cela il suffit de faire un clic droit sur ton prjet et de choisir Ajouter un élément existant, puis de choisir ton pdf. Il sera visible dans l'arborescence du projet.
    Cette solution me plait.
    J'ai donc importé le fichier pdf en question dans mon projet.
    Cela dit ça ne marche pas mieux...
    Si je vais dans propriété de mon fichier pdf j'ai la possibilité de choisir l'action à faire lors de la génération et donc de la publication.
    J'ai quatre choix:
    1°) Aucun ; Contenu ou Resources incorporée. Pour ces trois choix ça ne fonctionne pas
    2°) Compiler: Là ça me met "Impossible d'ouvrir le fichier module c:\mondossier.pdf.
    Et le programme me demande de vérifier si l'application correspondant au fichier est installée...???

    Je vais essayer de transformer le code C que tu m'as donné, mais si tu peux m'aiguiller sur le problème ci-dessus ça serait sympa.

    A+

  15. #15
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Il faut choisir "Contenu"
    Dans la propriété juste en dessous choisi "copier si nouveau" (ou un truc dans le genre).

    Maintenant si tu vas dans les propriétés du projet, onglet publication, bouton fichiers de l'application, tu verras ton pdf. Dans la colonne statut de publication tu choisis "data file"

  16. #16
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Il ne le trouve toujours pas.
    Par contre il s'installe correctement.

    Après la publication si je lance le SETUP, j'ai deux dossiers qui se créent automatiquement dans le répertoire suivant:

    C:\Documents and Settings\Administrateur\Local Settings\Apps\2.0\H53O2G1X.EWV\BR40E9.19V.

    L'un de ces dossiers commence par conf...exe et l'autre par conf...tion.

    C'est dans le premier qu'apparait mon dossier pdf.

    L'adresse est-elle bonne...

  17. #17
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Pour The_badger_man

    Mon problème est partiellement résolu.

    je m'explique:

    J'avais déjà remarqué que tout document contenu dans le fichier commençant par conf...tion pouvait être appelé de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim Chemin as string = "mondoc.extension"
    Il se trouve que dans la propriété de mon doc pdf si je choisi "resources incorporées" c'est précisément dans ce répertoire que va être installé mon doc.

    Donc ça marche. Pas vraiment comme tu me l'a indiqué, mais ça marche.
    je suis toujours intéressé par la réponse éventuelle de mon dernier post afin de mieux comprendre le VB.
    Si tu l'as merci de me le faire savoir.

    Sinon dis le moi aussi et je classerai ce sujet en résolu

    Merci pour tout

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/09/2008, 15h14
  2. Réponses: 2
    Dernier message: 21/08/2008, 18h34
  3. Droit sur un fichier pour mon application
    Par Papy214 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/06/2008, 18h37
  4. Réponses: 2
    Dernier message: 12/09/2007, 23h42
  5. Réponses: 3
    Dernier message: 29/10/2004, 14h54

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