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 :

Imprimer un fichier dont le chemin est dans une variable.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien
    Inscrit en
    Juillet 2020
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juillet 2020
    Messages : 141
    Par défaut Imprimer un fichier dont le chemin est dans une variable.
    Bonjour le Forum,

    Pouvez-vous m'aider, je souhaite imprimer un fichier PDF dont le chemin est dans une variable et en laissant le choix de l'imprimante à l'utilisateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chemdoss = IO.Path.Combine("\\mon chemin" , TextBox2.Text , TextBox3.Text , TextBox4.Text , TextBox5.Text , TextBox6.Text & "M32-code.Pdf")
    Beaucoup d'exemples sont sur le net, mais je ne trouve rien qui fonctionne pour mon ce cas de figure, merci pour votre aide.

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("NomDeTonReaderParDefaut", "/s /h /p CheminEtNomCompletDuPDF")
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("AcroRd32.exe", "/s /h /p D:\ES\Test.pdf")
    Selon le code que tu as posté, cela devrait être ceci si ton reader est bien AcrobatReader :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Chemdoss = IO.Path.Combine("\\mon chemin" , TextBox2.Text , TextBox3.Text , TextBox4.Text , TextBox5.Text , TextBox6.Text & "M32-code.Pdf")
    Process.Start("AcroRd32.exe", "/s /h /p " & Chemdoss)
    Bon dimanche ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien
    Inscrit en
    Juillet 2020
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juillet 2020
    Messages : 141
    Par défaut
    Bonjour Phil Rob,

    Merci pour votre aide

    Je viens de tester votre code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("AcroRd32.exe", "/s /h /p " & Chemdoss)
    une fenêtre s'affiche me demandant la destination puis cela copie le fichier PDF sous le chemin qui été choisi, mais cela n'imprime pas le pdf.

    J'ai peut-être louper quelque chose.

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    A coup sûr, c'est parce que l'imprimante par défaut de ton système est "Adobe PDF". Pour que le fichier soit réellement imprimé sur du papier, il faut que l'imprimante par défaut soit une vraie imprimante. Il te faut donc changer d'imprimante par défaut avant d'exécuter cette commande.

    A titre d'exemple, vois sur l'illustration suivante, mon imprimante par défaut est une HP et non AdobePDF.

    Nom : Tempus.jpg
Affichages : 139
Taille : 45,4 Ko


    ...

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien
    Inscrit en
    Juillet 2020
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juillet 2020
    Messages : 141
    Par défaut
    J'ai vérifier mon imprimante par défaut, c'est une bien imprimante physique "HP", ce qui est étrange c'est que cela me demande de rechercher un dossier pour enregistrer le pdf .

    Ok cela fonctionne, j'avais fait une petite erreur de saisie, maintenant, je me demande si il est possible que l'utilisateur choisisse son imprimante.

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Voici ...

    Au début de ton Form (ou au moins en dehors de toute Sub), la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Declare Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Boolean
    Et puis, là ou tu veux imprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     ' ... ... ...
     
            Dim MonImprimante As New PrintDialog
            MonImprimante.ShowDialog()
            SetDefaultPrinter(MonImprimante.PrinterSettings.PrinterName)
            Process.Start("AcroRd32.exe", "/s /h /p " & Chemdoss)
            MonImprimante.Dispose()
     ' ... ... ...
    Ce dispositif remplace l'imprimante par défaut du système par celle choisie dans la boîte de dialogue :
    Nom : Tempus2.jpg
Affichages : 128
Taille : 57,7 Ko
    Mais attention, je crois me souvenir que si ton imprimante par défaut était AdobePDF, c'est parce que tu l'utilises pour créer les PDF. Il faut donc refaire le même codage avant la création d'un pdf mais cette fois, il faudra que l'utilsateur choisisse "Adobe PDF" :
    • Mettre imprimante par défaut = AdobePDF pour créer le pdf
    • Mettre imprimante par défaut = HP... pour imprimer sur la HP...


    Remarque que j'ouvre la boîte de dialogue PrintDialog pour que l'utilisateur choisisse l'imprimante mais si tu connais le nom de cette imprimante, tu peux passer les lignes "MonImprimante..." et écrire directement :

    SetDefaultPrinter(LeNomDeLImprimanteQujeTuSouhaites) ou SetDefaultPrinter("Adobe PDF"), selon le cas.

    J'espère que ceci t'aidera ...

  7. #7
    Membre confirmé
    Homme Profil pro
    Technicien
    Inscrit en
    Juillet 2020
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juillet 2020
    Messages : 141
    Par défaut
    Merci beaucoup cela fonctionne grâce à vous, est-il possible de faire apparaitre un message qui indique si l'impression ne s'est pas faite ou alors si l'impression à réussi ?

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Je crois pas qu'on puisse gérer les erreurs d'impression à cet endroit.
    Je pense que c'est le système qui donnera un message à l'utilisateur.
    Essai à faire :
    Demander l'impression après avoir enlevé tout le papier de l'imprimante et voir ce qui se passe ....
    Bonne soirée

  9. #9
    Membre confirmé
    Homme Profil pro
    Technicien
    Inscrit en
    Juillet 2020
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juillet 2020
    Messages : 141
    Par défaut
    c'est une bonne idée, je testerais demain au boulot.
    encore merci, bonne soirée.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/06/2012, 12h55
  2. Réponses: 5
    Dernier message: 18/06/2009, 15h20
  3. Réponses: 2
    Dernier message: 01/10/2007, 12h17
  4. Réponses: 3
    Dernier message: 05/02/2007, 09h41
  5. Appel de methode dont le nom est dans une variable
    Par osopardo dans le forum Langage
    Réponses: 1
    Dernier message: 24/11/2005, 20h56

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