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 :

Position papier dans imprimante.


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 111
    Points : 64
    Points
    64
    Par défaut Position papier dans imprimante.
    WINDOWS XP et DELPHI 4.

    Bonjour à tous,

    Avec une imprimante EPSON D120 le papier est positionné impérativement au bord droit de l'imprimante quelle que soit la largeur de la feuille. Mes coordonnées d'impression ont donc pour origine ce même bord droit.

    Avec une CANON PIXMA iP 2700 le papier est positionné impérativement au centre de l'imprimante quelle que soit la largeur de la feuille. Mes coordonnées d'impression doivent donc avoir pour origine le centre de la feuille plus sa demi-largeur et ce n'est évidemment pas la même chose lorsque la largeur du papier est plus petite que celle du A4.

    Comment dans mon programme puis-je déterminer où la feuille est positionnée selon l'imprimante utilisée sans avoir à poser la question à l'utilisateur*? J'ai cherché en particulier dans GetDeviceCaps de WINDOWS et aussi dans les FAQ mais n'ai pas trouvé.

    Merci à qui pourra m'éclairer.

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 670
    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 670
    Points : 7 040
    Points
    7 040
    Par défaut
    Tu as regardé dans l'unité WinSpool ?
    Il y a peut-être des trucs utiles ...

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    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 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    Si elle est prévue centrée, seule sa largeur est à connaître : ce doit ensuite être la tâche de l'imprimante de déterminer où se situe le même repère physique que pour une autre imprimante gérant différemment le positionnement du papier !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 111
    Points : 64
    Points
    64
    Par défaut
    Merci à tous les deux pour vos contributions.

    Lung : je vais alller fouiller dans Winspool qui pourrait bien en effet donner la solution.

    Tourlourou : non je ne crois pas que l'imprimante soit en mesure de gérer le problème. En tous cas ma CANON ne le fait pas. Le papeir est positionné entre deux taquets qui coulissent symétriquement de telle sorte que le papier reste centré. Bien que n'ayant pas pu voir à l'intérieur j'ai tout lieu de penser que ces deux taquets ne commandent rien au point de vue électronique et que par conséquent l'imprimante "ne sait pas" la largeur du papier.

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 755
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 755
    Points : 13 349
    Points
    13 349
    Par défaut
    C'est à cela que servent les options d'impression. Si tu choisis un format A4 mais que tu veux imprimer en A5, sûr que ça ne va pas le faire

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 111
    Points : 64
    Points
    64
    Par défaut
    Merci Andnotor.

    Les options d'impression sont accessibles à l'utilisateur.

    Or ce que je voudrais c'est précisément que l'utilisateur n'ait pas à intervenir mais que la position du papier sur l'imprimante soit détectée automatiquement pour que le programme puisse faire le nécessaire en conséquence?

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 755
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 755
    Points : 13 349
    Points
    13 349
    Par défaut
    Et bien ce n'est pas possible. Tu ne récupéreras que ce qui est configuré au niveau Windows.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 111
    Points : 64
    Points
    64
    Par défaut
    Je persiste à penser qu'il doit y avoir un moyen.

    J'utilise WORKS pour l'impression de mes enveloppes et il détecte sans intervention de ma part si l'enveloppe se trouve au centre avec la CANON ou sur le bord droit avec l'EPSON.

    Je n'ai pas WORDS mais je suppose qu'il doit aussi le faire.

    Merci à tous.

  9. #9
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 871
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 871
    Points : 15 287
    Points
    15 287
    Par défaut
    Citation Envoyé par Stevens.Georges Voir le message
    (...) Bien que n'ayant pas pu voir à l'intérieur j'ai tout lieu de penser que ces deux taquets ne commandent rien au point de vue électronique et que par conséquent l'imprimante "ne sait pas" la largeur du papier.
    Y a p'têt' des capteurs opto-électroniques qui "voient" la largeur du papier, mais je pense surtout au développement ci-après :

    Citation Envoyé par Stevens.Georges Voir le message
    Je persiste à penser qu'il doit y avoir un moyen.

    J'utilise WORKS pour l'impression de mes enveloppes et il détecte sans intervention de ma part si l'enveloppe se trouve au centre avec la CANON ou sur le bord droit avec l'EPSON.
    il détecte sans intervention de ma part, comment ça, sans intervention ? C'est bien toi qui décide dans Works d'utiliser telle ou telle imprimante !

    Ensuite c'est le boulot du pilote sélectionné de faire imprimer au bon endroit, et le manuel te dit où mettre l'enveloppe dans la machine.

    D'ailleurs, fais le test suivant : demande l'impression d'une enveloppe et mets une feuille A4 : ça sort ou le pilote t'envoie bouler ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 111
    Points : 64
    Points
    64
    Par défaut
    Merci Jipété.

    J'ai fait le test que tu m'as suggéré et en effet l'impression se fait bien au milieu de la page A4 ce qui confirme qu'il n'y a pas de capteurs ou autres dans l'imprimante pour détecter la largeur du papier.

    Reste que je ne vois toujours quel doit être le code pour trouver à partir du pilote de l'imprimante la position du papier. Sans être tout à fait un novice je ne suis pas un expert...!

  11. #11
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 871
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 871
    Points : 15 287
    Points
    15 287
    Par défaut
    Yep !

    J'ai fait une recherche sur GetDeviceCaps dans MSDN, qui m'a envoyé vers DeviceCapabilities (DC_MEDIATYPE), et j'ai continué dans DEVMODE structure pour les explications, où l'on trouve, entre autres, dmPaperSize où l'on peut lire :
    (...)
    DMPAPER_ENV_C5 C5 Envelope, 162- by 229-millimeters
    DMPAPER_ENV_C3 C3 Envelope, 324- by 458-millimeters
    DMPAPER_ENV_C4 C4 Envelope, 229- by 324-millimeters
    DMPAPER_ENV_C6 C6 Envelope, 114- by 162-millimeters
    DMPAPER_ENV_C65 C65 Envelope, 114- by 229-millimeters
    DMPAPER_ENV_B4 B4 Envelope, 250- by 353-millimeters
    DMPAPER_ENV_B5 B5 Envelope, 176- by 250-millimeters
    DMPAPER_ENV_B6 B6 Envelope, 176- by 125-millimeters
    DMPAPER_ENV_DL DL Envelope, 110- by 220-millimeters
    DMPAPER_ENV_INVITE Envelope Invite 220 x 220 mm
    DMPAPER_ENV_ITALY Italy Envelope, 110- by 230-millimeters
    DMPAPER_ENV_MONARCH Monarch Envelope, 3 7/8- by 7 1/2-inches
    DMPAPER_ENV_PERSONAL 6 3/4 Envelope, 3 5/8- by 6 1/2-inches
    (...)
    Ça pourrait peut-être correspondre à ton besoin.

    Bonne étude, bons tests...

  12. #12
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    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 874
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    Apparemment, en passant la valeur DM_OUT_BUFFER au paramètre fMode de la fonction DocumentProperties (librairie winspool), on récupère les paramétrages imprimante dans une structure DevMode.
    (passer d'abord 0 pour récupérer la taille de la zone mémoire à passer dans le pointeur sur DevMode).

    A voir si ça permet de savoir le format du papier engagé ou seulement le format de la dernière sélection dans Windows...

    [EDIT = grillé !]

  13. #13
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 871
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 871
    Points : 15 287
    Points
    15 287
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    (...)
    [EDIT = grillé !]
    Non non, complémentaire

    Salut, Yves

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 111
    Points : 64
    Points
    64
    Par défaut
    Un grand merci à Jipété et Tourlourou qui se sont livvrés à des recherches.

    Je vais maintenant pousser mes investigations dans ces directions et vous tiendrai au courant en cas de découvertes.

    Merci encore.

Discussions similaires

  1. y a t il du papier dans mon imprimante?
    Par mathrix77 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/02/2008, 10h58
  2. [VB6] Avancer/Reculer le papier dans l'imprimante
    Par tigrou2405 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/03/2006, 12h00
  3. aller à une position précise dans un fichier texte
    Par bassidi meryeme dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2005, 14h57
  4. [Opera 7 & 8] Position absolue dans conteneur relatif
    Par Sub0 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 16
    Dernier message: 16/08/2005, 23h16
  5. [AS2] Position clip dans attachMovie
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 07/07/2005, 11h10

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