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 6 et antérieur Discussion :

Impression de documents


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Par défaut Impression de documents
    Bonjour,


    J'ai un programme qui crée des PDF à partir de PDFCreator et qui les stocke dans un dossier. Ensuite, je voudrais imprimer ces PDF avec une vraie imprimante, tout en maintenant PDFCreator comme imprimante par défaut... Est-ce possible ? J'ai surtout du mal avec la syntaxe pour les impressions, je vous écris rapidement ce que j'ai mis dans mon programme à propos de l'imprimante réelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim p As Printer
    p = "\\PC-GALLIUM\Brother HL-1430 series"
    p.Print document.pdf
    Et là il me met une erreur 91 ou 83 comme quoi il ne gère pas ces paramètres, etc.

    En gros voilà.

    Merci pour votre aide.


    Cécile

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Il faudra que l'imprimante soit disponible et l'initialiser avec l'instruction Set :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Command1_Click()
       Dim P As Printer
       For Each P In Printers
         ' Set Printer = P
         ' MsgBox P.DeviceName
          If P.DeviceName = "\\PC-GALLIUM\Brother HL-1430 series" Then
              Set Printer = P
              P.Print "Ceci est un exemple"
              MsgBox P.DeviceName
          End If
       Next P
    End Sub
    Tu peux activer les lignes en commentaires pour voir les imprimantes installées.
    Le 2ème MsgBox te permet de voir si cette imprimante a été choisie ou non.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Par défaut
    J'ai rajouté ce bout de code dans mon programme, mais il me sort une erreur 424 un Objet est requis... Je vais péter les plombs avec ce programme, je suis dessus depuis le mois de janvier !! Je dois vraiment pas avoir la science infuse en VB.

    Bref, la question que je me posais c'est : avec le code de l_autodidacte, lorsque je mets Set Printer = p, est-ce que je me sers de l'imprimante affectée à p uniquement pour cette impression ?

    Plus simplement, est-ce que je peux jouer avec deux imprimantes différentes dans un programme VB, en passant de l'une à l'autre sans les empêcher de faire leur travail dans leur coin ? En les appelant quand j'ai besoin d'elles avec leurs prénoms respectifs ?

    Est-ce que je peux demander à PDFCreator de me créer des PDF et simultanément de les imprimer avec une vraie imprimante ? Ou est-ce que ça crée une confusion, des interférences ?


    Merci beaucoup,



    Cécile

  4. #4
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Bonjour,

    à priori je changerais d'abord d'imprimante (je pense qu'il y a des codes dispo sur le forum ou dans la FAQ, celui-ci peut être), puis j'imprimerais le PDF avec un shellexecute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
     
    Private Sub Command1_Click()
    ShellExecute Me.hwnd, "print", "C:\Users\Pierre\Documents\Crossing18.pdf", _
    vbNullString, vbNullString, 1
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Par défaut
    J'ai bidouillé un peu mon code et je commence à y voir plus clair.

    Maintenant tout se passe bien, l'imprimante se met en route quand il faut, mais eu lieu de m'imprimer mon fichier concaténé, elle m'imprime une feuille blanche... Alors qu'elle imprime très bien mon fichier quand je lui demande manuellement.

    Je vais essayer de lui préciser le chemin du fichier à imprimer, c'est peut être ça qui ne lui va pas...


    Cécile

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Par défaut
    Les objets Printer de VB ne peuvent pas imprimer de documents comme tu veut le faire.

    Pour faire ce que tu veut, une solution est de passer par la commande shell comme l'indique OhMonBato mais en changeant au prélable l'imprimante par défaut par celle que tu vise puis en remettant l'ancienne si tu veut éviter que ton utilisateur s'arrache les cheveux à comprendre pourquoi son imprimante par défaut change sans arrêt.

    Tu dois imprimer tes documents directement après leur génération ou est-ce qu'il y a un délai ? Car, dans les options de pdfcreator, il y en a une qui le fait imprimer le document après l'avoir enregistré.

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

Discussions similaires

  1. [C++/CLI] Impression de document
    Par Casimir33 dans le forum C++/CLI
    Réponses: 3
    Dernier message: 14/09/2006, 16h34
  2. Réponses: 4
    Dernier message: 08/08/2006, 19h57
  3. [C++/CLI] Impression de document
    Par Casimir33 dans le forum Visual C++
    Réponses: 0
    Dernier message: 26/07/2006, 11h30
  4. [Librairies] Questions relatives à l'impression de documents
    Par Ronin dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/12/2005, 15h53
  5. [Stratégie] Impression de documents
    Par gegev2 dans le forum Documents
    Réponses: 1
    Dernier message: 12/07/2005, 11h19

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