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

Delphi Discussion :

Comment empêcher l’éjection du papier après impression


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut Comment empêcher l’éjection du papier après impression
    Bonjour à tous,

    J'ai un programme de gestion des Ventes et qui imprime des bon de livraison sur une imprimante matricielle avec du papier listing. Et pour des soucis d'économie et de gains de temps je voudrais empêcher l’éjection du papier après impression d'un bon mais je ne sais pas comment faire. J'ai pensé à la touche pause de l'imprimante mais je ne sais pas comment l'activer par programmation delphi.

    merci de m'aider.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Si tu n'oubliais pas d'indiquer qu'il s'agit d'un état fait avec Rave (au vu de la même demande plus ancienne dans le forum consacré) ce serait plus précis.
    Et si pour ma part je n'y ai pas répondu c'est parce que je n'en ai pas idée et pas les moyens matériels (l'imprimante) pour tester.
    D'ailleurs tu n'indiques pas :
    si les bons sont toujours de la même taille ou pas.
    la présentation du bon (un état ligne par ligne est-il envisageable ?, pas de graphisme ?)
    une image scannée d'un bon serait un plus pour se faire une idée
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    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 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Il n'y a pas un manuel qui va avec l'imprimante ?
    Je me souviens que dans mon précédent poste, un collègue envoyait des commandes précises (des suites de caractères) pour piloter les imprimantes matricielles.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  4. #4
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Bonjour,

    Ou alors c'est une propriété de l'imprimante à modifier. ( il me semble que c'est le cas pour les imprimantes tickets )

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Bonjour et merci pour vos réponses.
    j'ai reposé cette question ici parce que j'ai compris en testant pendant une semaine toutes les commandes rave que la solution et de gérer l'imprimante.
    dont le commentaire de @lung est interessant
    Je me souviens que dans mon précédent poste, un collègue envoyait des commandes précises (des suites de caractères) pour piloter les imprimantes matricielles.
    J'ai travaillé en 1998 avec cobol et clipper5 et je me souviens d'avoir utilisé des caractère spéciaux envoyé à l'imprimante comme commande exple : chr(27).., et donc j'ai pensé qu'on activant la touche pause de l'imprimante ça va empêcher l’éjection du papier mais je ne sais pas comment .

    @sergio
    D'ailleurs tu n'indiques pas :
    si les bons sont toujours de la même taille ou pas.
    la présentation du bon (un état ligne par ligne est-il envisageable ?, pas de graphisme ?)
    une image scannée d'un bon serait un plus pour se faire une idée
    Evidemment c'est de taille variante sinon l’éjection sera obligatoire. pour le Bon c'est un etat rave qui s'imprime le plus normalement du monde sauf que juste après l'impression empêcher l’éjection du papier.

  6. #6
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Citation Envoyé par chekkal Voir le message
    Bonjour et merci pour vos réponses.
    j'ai reposé cette question ici parce que j'ai compris en testant pendant une semaine toutes les commandes rave que la solution et de gérer l'imprimante.
    dont le commentaire de @lung est interessant

    J'ai travaillé en 1998 avec cobol et clipper5 et je me souviens d'avoir utilisé des caractère spéciaux envoyé à l'imprimante comme commande exple : chr(27).., et donc j'ai pensé qu'on activant la touche pause de l'imprimante ça va empêcher l’éjection du papier mais je ne sais pas comment .
    .
    Oui c'est les commandes Escape, un jeu de commandes fait par Epson et qui est devenu un standard, maintenant il y a aussi les commandes Esc/Pos.

    Comme l'a signalé Lung, ces commandes sont toutes précisées dans le manuel de l'imprimante ( surtout si l'imprimante est une Epson ).

    Mais je doute que faire une pause annule l'éjection du papier car cette commande est quant même envoyée à l'imprimante, donc après la pause, tu auras l'éjection du papier.

    tu parles d'éjection du papier, en fait, c'est un saut de page qui est envoyé à l'imprimante lors de la fin de l'édition ?

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    si je demandais
    Citation Envoyé par sergiomaster
    la présentation du bon (un état ligne par ligne est-il envisageable ?, pas de graphisme ?)
    une image scannée d'un bon serait un plus pour se faire une idée
    ce n'était pas anodin.

    En fait, je voulais savoir s'il n'était pas envisageable de se passer de Rave pour passer par une impression direct soit par le canvas du printer soit par un writeln direct soit encore directement par des séquence d'échappement.

    cela fait très longtemps que je n'ai pas utilisé d'imprimante matricielle (je crois que ça date de 2002), ce que je me rappelle de cette expérience c'est que une imprimante matricielle est plus lente avec des états graphiques (comme ceux de rave ou quickreport). Qu'il y a aussi le problème du spouleur qu'il faut désactiver (ou manipuler de façon à imprimer dès qu'il y a quelque chose à imprimer)

    Citation Envoyé par free07
    Mais je doute que faire une pause annule l'éjection du papier car cette commande est quant même envoyée à l'imprimante, donc après la pause, tu auras l'éjection du papier.

    Citation Envoyé par free07
    tu parles d'éjection du papier, en fait, c'est un saut de page qui est envoyé à l'imprimante lors de la fin de l'édition ?
    ce que Rave fait de manière automatique AMHA
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Bonjour
    @free07
    Oui c'est les commandes Escape, un jeu de commandes fait par Epson et qui est devenu un standard, maintenant il y a aussi les commandes Esc/Pos.

    Comme l'a signalé Lung, ces commandes sont toutes précisées dans le manuel de l'imprimante ( surtout si l'imprimante est une Epson ).
    Parfaitement c'est ce jeu de commandes que je cherche à retrouvé, comme je l'ai dit dans mon précédent poste je l'ai utilisé déjà et il compatible aussi avec les imprimantes IBM

    @sergio
    ce n'était pas anodin.

    En fait, je voulais savoir s'il n'était pas envisageable de se passer de Rave pour passer par une impression direct soit par le canvas du printer soit par un writeln direct soit encore directement par des séquence d'échappement.
    j'ai déjà testé l'impresion par le canvas de l'imprimante et c'est pareil l’éjection et toujours exécutée.

    cela fait très longtemps que je n'ai pas utilisé d'imprimante matricielle (je crois que ça date de 2002), ce que je me rappelle de cette expérience c'est que une imprimante matricielle est plus lente avec des états graphiques (comme ceux de rave ou quickreport). Qu'il y a aussi le problème du spouleur qu'il faut désactiver (ou manipuler de façon à imprimer dès qu'il y a quelque chose à imprimer)
    l'utilité principale de l'imprimante matricielle c'est l'impression avec du papier listing à 2 ou 3 exemplaire (un pour le client et l'autre reste comme archive)

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    bonjour,
    J'ai trouvé ce lien http://content.epson.de/fileadmin/co...ads/escpos.pdf qui illustre les différente commandes pour les imprimantes epson. Le probléme maintenant c'est comment relié ça avec un état RAVEREPORT

  10. #10
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    l'utilité principale de l'imprimante matricielle c'est l'impression avec du papier listing à 2 ou 3 exemplaire (un pour le client et l'autre reste comme archive)
    cette remarque, avec les imprimantes actuelles n'est plus tellement d'actualité , il est souvent plus rapide et moins cher d'imprimer deux ou plus d'exemplaires
    le papier listing multicouches est cher, non écologique et les copies carbones de qualité médiocres (si le stockage du papier est mauvais) et s'efface rapidement

    Dans mon entreprise nous avons abandonné ce papier et ce mode d'impression à la fin du siècle dernier (ou plutôt dès les années 2002)
    j'ai déjà testé l'impression par le canvas de l'imprimante et c'est pareil l’éjection et toujours exécutée.
    Pour les canvas je ne saurais dire, mais de toutes façon si vous voulez utiliser les séquences d'échappements il vous faut passer par des envois directs de caractères à l'imprimante . Ce qui exclu Rave, et vous demande d'ouvrir un 'fichier imprimante' pour 'écrire' dedans
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    @sergio
    Pour les canvas je ne saurais dire, mais de toutes façon si vous voulez utiliser les séquences d'échappements il vous faut passer par des envois directs de caractères à l'imprimante . Ce qui exclu Rave, et vous demande d'ouvrir un 'fichier imprimante' pour 'écrire' dedans
    Effectivement c'est comme cela que j'avais l'attention de procéder, juste après l’exécution de rave j'envoie des commandes à l'imprimante.

  12. #12
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par chekkal Voir le message
    Effectivement c'est comme cela que j'avais l'attention de procéder, juste après l’exécution de rave j'envoie des commandes à l'imprimante.
    non tu n'y es pas du tout, je proposais de ne pas utiliser RAVE du tout

    voilà en gros le principe (retrouvé dans un vieux programme):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    lpt : TextFile;
     
    begin
    AssignFile(Lpt,'LPT1');  // ici il s'agit d'une imprimante sur le port parallèle 
    Rewrite(lpt);
    // impression du bon
    Writeln(lpt,<texte,séquences d'échapements etc..>); //= 1 ligne
    // je ne mets pas les codes car ce n'était pas une Epson mais une ZEBRA....
    .....
    ...
    // certaines imprimantes ont même un cutter qui coupe la feuille via séquence d'échappement 
    Closefile(lpt);
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Après avoir "dormi dessus" je voulais rajouter quelque chose
    Effectivement c'est comme cela que j'avais l'attention de procéder, juste après l’exécution de rave j'envoie des commandes à l'imprimante.
    tu ne peux procéder ainsi car tu passes par deux "canaux" d'impression différents pour faire simple Rave passe par un spool d'impression graphique tandis que l'envoi de commande passe par un envoi de séquences de caractères.

    Il est peut être possible d'envisager une solution mixte où le canvas de l'état Rave serait envoyé vers le fichier Imprimante comme un graphique, cependant il faut
    récupérer le canvas de l'état Rave et je doute que ce dernier ne fasse pas la taille d'une page
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  14. #14
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut sergio

    tu voulais peut etre plutot faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       Printer.BeginDoc;
       Printer.Canvas.TextOut(0,0,'Place any text here');
       Printer.EndDoc;
    si tu récupère le canvas c'est gagné
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Ne peux-tu pas simplement jouer sur la taille de la page, modifier sa hauteur pour chaque bulletin ?
    Une imprimante à crémaillère ne va pas forcément se mettre en défaut si la taille ne correspond pas.

  16. #16
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    @AndNotOr
    Ne peux-tu pas simplement jouer sur la taille de la page, modifier sa hauteur pour chaque bulletin ?
    Une imprimante à crémaillère ne va pas forcément se mettre en défaut si la taille ne correspond pas.
    Le problème c'est que tout dépend du nbres de lignes à imprimer et je croit pas que les tailles personnalisé soient accepte par les imprimantes matricielles.

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/02/2009, 16h02
  2. [VBA-E] comment empécher l'impression
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 23/01/2007, 11h16
  3. [MySQL] Comment empêcher le renvoi d'un formulaire après clic sur rafraichir
    Par pcdj dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/01/2007, 23h42
  4. Réponses: 2
    Dernier message: 13/11/2005, 20h48

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