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

Langage Delphi Discussion :

D7 + QuickReport + Imprimante Partagée


Sujet :

Langage Delphi

  1. #1
    Membre du Club Avatar de fredfred
    Inscrit en
    Septembre 2002
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 161
    Points : 54
    Points
    54
    Par défaut D7 + QuickReport + Imprimante Partagée
    Salut à tous

    J'ai un problème pour envoyer une impression via Quickreport vers une imprimante partagée sur le poste.

    La liste Printer.Printers n'affiche aucun des noms des imprimantes partagées, uniquement leurs noms rééls.

    Comment puis-je retrouver une imprimante avec uniquement son nom de partage et envoyer une impression dessus ?

    Merci

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 676
    Points : 7 083
    Points
    7 083
    Par défaut
    Regarde dans l'unité WinSpool. Tu trouveras surement ton bonheur.

    Sinon, GetPrinter est capable de te donner le PrinterName et le ShareName (entre autre).

  3. #3
    Membre du Club Avatar de fredfred
    Inscrit en
    Septembre 2002
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 161
    Points : 54
    Points
    54
    Par défaut
    Bon, j'ai pas capté grand chose.
    Surtout qu'entre le GetPrinter de Windows et celui de la VCL, pas simple de distinguer quoi que ce soit.

    Bref, j'ai trouvé un bout de code sur le net avec le GetPrinter de Windows, qui repère bien mon imprimante partagée, mais l'envoi de l'impression du report part systèmatiquement sur l'imprimante par défaut du poste :

    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
    16
    17
    18
    19
    20
    21
     
          with QR_Etiquette do
          begin
            Prepare ;
     
            // Imprimante sélectionnée
            PrinterName := '\\'+VGL_POSTE+'\ETIQUETTE';
     
            If OpenPrinter(PChar(PrinterName),PrinterHandle,NiL) Then Begin
             GetPrinter(PrinterHandle,1,@PPRINTER_INFO_1,SizeOf (PPRINTER_INFO_1),@EnumSizeOfBuffer);
     
     
              SetPrinter(PrinterHandle,1,@PPRINTER_INFO_1,SizeOf (PPRINTER_INFO_1));
     
     
              // Impression
              Print;
            end;
     
            free;
          end;
    Il diot manquer une instruction pour assigner l'imprimante récupérée par le GetPrinter au report, mais je ne vois pas quoi...

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 676
    Points : 7 083
    Points
    7 083
    Par défaut
    Pour donner une imprimante à QuickReport, je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QuickRep.PrinterSettings.PrinterIndex := Printer.PrinterIndex;
    Sinon, il y a peut-être des fonctions utiles dans l'unité QRPrntr.


  5. #5
    Membre du Club Avatar de fredfred
    Inscrit en
    Septembre 2002
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 161
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Lung Voir le message
    Pour donner une imprimante à QuickReport, je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QuickRep.PrinterSettings.PrinterIndex := Printer.PrinterIndex;
    Sinon, il y a peut-être des fonctions utiles dans l'unité QRPrntr.

    C'est également ce que j'utilise quand j'envoie sur une imprimante standard, mais ça na marche pas avec mon imprimante partagée car elle n'apparait pas dans la liste Printer, d'où l'utilisation du GetPrinter. Mais je ne parviens pas ensuite à associer le GetPrinter au report.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 164
    Points : 41 346
    Points
    41 346
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par fredfred Voir le message
    mon imprimante partagée car elle n'apparait pas dans la liste Printer,
    c'est plutôt ça qui est bizarre

    cela fait longtemps mais j'avais fait un truc avec GetPrinter ici à voir si ça peut t'aider

  7. #7
    Membre du Club Avatar de fredfred
    Inscrit en
    Septembre 2002
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 161
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    c'est plutôt ça qui est bizarre
    En fait je me suis mal exprimé. Elle apparait bien avec son nom physique (Zebra xxx), mais il y a plusieurs Zebra connectées sur le poste, de différents modèles que je ne connais pas forcément, et le seul moyen d'identifier la bonne est son nom partagé, qui lui n'apparait pas dans la liste Printer.

    Citation Envoyé par SergioMaster Voir le message
    cela fait longtemps mais j'avais fait un truc avec GetPrinter ici à voir si ça peut t'aider
    J'ai regardé ton code, mais nous n'utilisons pas la même version de Getprinter. Ton exemple est basé sur la fonction VCL, alors que j'utilise celle de Windows, qui est la seule avec laquelle j'arrive à "trouver" l'imprimante d'après son seul nom de partage. Si je devais utiliser la version VCL, je ne saurais pas quoi mettre dans les paramétres (FDevice, FDriver, FPort, DeviceMode).

Discussions similaires

  1. Pb d'impression sur imprimante partagée
    Par Gege70 dans le forum Windows XP
    Réponses: 6
    Dernier message: 25/01/2008, 22h44
  2. imprimante partagée sur réseau Windows
    Par nuglus dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 22/12/2006, 09h53
  3. imprimante partagée
    Par drKzs dans le forum Windows XP
    Réponses: 6
    Dernier message: 09/01/2006, 10h43
  4. Ne pas rechercher les imprimantes partagées ???
    Par svil dans le forum Windows XP
    Réponses: 1
    Dernier message: 18/11/2005, 05h21
  5. [CR][ASP.NET] Impression sur imprimante partagée
    Par Frusciante8 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 27/01/2005, 12h03

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