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

API, COM et SDKs Delphi Discussion :

Imprimante DeviceCapabilities DC_NUP Delphi 7


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 508
    Par défaut Imprimante DeviceCapabilities DC_NUP Delphi 7
    Bonjour

    je voudrais extraire et sélectionner le nombre de page par feuille avant l'impression.

    La fonction DeviceCapabilities
    http://msdn.microsoft.com/en-us/library/dd183552
    semble être au coeur de ce besoin mais quelques contributions sur le Net montrent que ce n'est peut être pas aussi trivial :

    http://mc-computing.com/languages/De...abilities.html

    Quoiqu'il en soit avec le paramètre DC_NUP et en suivant les prescriptions de ce qui précède (eu égard au dysfonctionnement apparent de windows.pas) le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Printer.GetPrinter(Device, Driver, Port, hDevmode);
    (Integer) Nup:=WinSpool.DeviceCapabilities(Device, Port, DC_NUP, nil, nil);
    retourne -1 dans Nup quelquesoit l'imprimante par défaut. Evidemment j'ai vérifié par le panneau de configuration que les imprimantes testées permettaient bien d'imprimer plusieurs pages par feuille.

    J'ai trouvé des mises en garde par rapport aux pilotes d'impression, en l’occurrence ce qui m'intéresse est de faire fonctionner l'impression avec PDF Creator 1.2.2. Mais la sélection de l'option DC_NUP n'a pas de raison de ne pas fonctionner avec l'API si elle fonctionne par les propriétés "manuelles" de l'imprimante je pense, et ce quelque soit l'imprimante ?

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 508
    Par défaut
    Problème résolu en entrant la constante 33 au lieu de DC_NUP (qui vaut 24).

    Mais la question est de savoir si cette constante est sensible à la version de Windows ?

  3. #3
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Par défaut
    @frantzgac m'a précédé, mais effectivement, il ne faut pas utiliser la constante fourni par défaut dans l'unité Windows car elle est fausse comme la constante suivante (cf. extrait)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      {$EXTERNALSYM DC_MODEL}
      DC_MODEL = 24;
      {$EXTERNALSYM DC_COLORDEVICE}
      DC_COLORDEVICE = 23;
      {$EXTERNALSYM DC_NUP}
      DC_NUP = 24;
    C'est un bug qui a été référencé il y a longtemps : bug 33767
    à résoudre comme ceci pour ceux qui ont une version de Delphi antérieure à la 15.0.3819.31711 soit Delphi XE si je ne me trompe pas....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DC_COLORDEVICE = 32; //(en conflit avec DC_MANUFACTURER)
    DC_NUP = 33; // (en conflit avec DC_MODEL)
    --
    Philippe.

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

Discussions similaires

  1. Paramétrer un driver d'imprimante avec delphi
    Par bremer dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2012, 11h20
  2. Delphi et imprimantes
    Par od.dev dans le forum Delphi
    Réponses: 4
    Dernier message: 29/04/2007, 13h24
  3. Impression direct sur imprimante via delphi
    Par wattman dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2006, 12h35
  4. Paramètres spécifiques d'une imprimante depuis Delphi
    Par adrien_as dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 15/09/2005, 17h18
  5. Réponses: 1
    Dernier message: 30/05/2005, 18h29

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