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 :

commande du recto/verso


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 179
    Points : 65
    Points
    65
    Par défaut commande du recto/verso
    salut:
    j'ai un imprimente fargo 820 pour l'impression des carte plastique .il peut imprimer en recto verso automatiquement puisque il renverse les cartes lui meme. pour le commander j'ai utiliser un code d'impression [printer] mais quand j'active l'impression en recto/verso il imprime le recto de la document dans une carte et le verso dans une autre .
    es qu'il y a une méthode ou un code à ajouter pour que l'imprimente imprime les deux documents dans une seule carte et il renverce la carte lui meme.
    merci

  2. #2
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    As-tu été voir dans le pilote les possibilités (propriétés) de ta printeuse ?

    Mais si c'est une application à distribuer, là c'est tout autre chose.

    Tiens au fait, toi qui affectionne aussi la classe Printers : connais-tu la lib ZPrinters ?

    Biblio, à mon avis, très très mal documentée et sous-utlisée.

    @+

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 179
    Points : 65
    Points
    65
    Par défaut
    salut J-P
    j'ai pas bien compris ce que vous voulez dire mais
    es que il y a une méthode pour lire les pilots de l'imprimante et de forcer l'impression en recto verso .
    vous pouvez meme me donnez des cours sur la lecture des driver
    merci d'avance.

  4. #4
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Je ne suis qu'un débutant en Delphi qui affectionne particulièrement certaines classes Delphi, comme la TPrinter.

    Question pilote de ta printeuse, as-tu été voir du côté de ton dossier Imprimantes de Windows :

    - Clic droite sur ta printeuse en question ==> Propriété, là tu entreras dans le pilote que je parlais ci-dessus.

    Tu devrais découvrir toutes les possiibilités que t'offre ta printeuse recto/verso et ainsi te permettre de gérer ce mode d'impression.

    @+

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 300
    Points
    11 300
    Billets dans le blog
    6
    Par défaut
    regarde du côté de GetDeviceCaps() et DeviceCapabilities()
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Réponse ici :
    http://www.developpez.net/forums/vie...744&highlight=

    Avec ce document là, tu devrais t'en sortir !
    http://www.peernet.com/cx710/userguide.pdf


    Explications :
    Le lien vers le PDF que je t'ai donné dresse une liste de codes (constantes) Windows pour spécifier à une imprimante quel type de carte il doit utiliser en définissant les bonnes valeurs pour "paper size"et "media type", ainsi tu as dans "paper size" les cartes qui ont des bandes magnétiques (Hico, Loco, JIS II) ou non, assorties du puce électronique (IC, IC No protect) ou non. "Media Type" defini la façon d'imprimer en recto/verso, à mon avis c'est là que tu dois creuser.

    Ensuite, par rapport au code que je t'ai fourni sur ton autre post, tu peux l'adapter afin d'envoyer à l'imprimante le "Paper size" et le "Media Type", en plus du DUPLEX. Tout ce que tu as a faire c'est d'adapter la procedure ForceDuplexMode que je t'ai déjà fourni. Même à tatons, tu devrait tomber sur les bonnes valeus pour faire fonctionner ton duplex.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    procedure ForceDuplexMode;
    var
      Device, Driver, Port: array[0..80] of Char;
      DevMode: THandle;
      pDevmode: PDeviceMode;
      pToMediaType:^byte;
     
    begin
      Printer.GetPrinter(Device, Driver, Port, DevMode);
      if Devmode <> 0 then begin
        pDevMode := GlobalLock(Devmode);
        if pDevmode <> nil then
        try
          with pDevmode^ do begin
            //PaperSize
            dmFormName:=258 //égal à BLANK_FACEUP
            //recto-verso 
            dmDuplex := DMDUP_VERTICAL;
     
            //liste des champs à mettre à jour
            dmFields := dmFields or DM_PAPERSIZE or    DM_FORMNAME
                              or DM_DUPLEX;
     
            //choix du media type n°10, sous XP :)
            // en c++, ça donne
            //((BYTE *)(pDevmode+1))[58] = 10 ;
            pToMediaType:=Cardinal(pDevMode)+sizeof(pDevMode^)+58;  //je ne sais plus trop si c'est comme ça qu'on affecte
                                  //une adresse particulière de la mémoire, en 
                                 //particulier à un pointeur typé, à vérifier donc...
                                 //je devrais pouvoir retrouver ça demain...
            pToMediaType^:=10;
          end;
        finally
          GlobalUnlock(Devmode);
        end;
      end; { If }
    end;
    Bidouilleuse Delphi

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

Discussions similaires

  1. [CR8.5] Perte d'enregistrement sur passage recto/verso
    Par jldlci dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 20/12/2004, 10h14
  2. [CR] Impression recto verso des étiquettes
    Par yoyothebest dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 07/09/2004, 09h07
  3. [Rave] Impression Recto Verso en un clic
    Par Kraby dans le forum Rave
    Réponses: 2
    Dernier message: 22/04/2004, 08h46
  4. [VB6] DataReport et Impression Recto-Verso
    Par khany dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/12/2003, 11h18
  5. [CR8.5] Impression Recto verso
    Par L.nico dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 25/11/2003, 16h57

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