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 :

Impression sur le canevas de l'imprimante


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 954
    Par défaut Impression sur le canevas de l'imprimante
    Bonjour à tous,

    Pour imprimer dans le canevas de l'imprimante, j'utilise ce bout de code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with printer do
    begin
    begindoc;
    canvas.textout(x,y,'texte à imprimer');
    enddoc;
    end;
    maintenant le probléme c'est que je veut répeter l'opération sur des centaines de feuilles (800 minimum) et j'ai modifier le code comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    with printer do
    begin
    begindoc;
    for i:=1 to 800 do
    begin
             canvas.textout(x,y,'texte à imprimer'); 
             newpage;
    end;
    enddoc;
    mais là il imprime sur la première page mais pas sur les autres.

  2. #2
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 506
    Par défaut
    Bonjour,

    pour moi sur D7 avec l'imprimante PdfCreator, ces 2 codes fonctionnent bien :

    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
    procedure TF_Princ.Button2Click(Sender: TObject);
    Var
      x, y : Integer ;
      i : Integer ;
    begin
      x := 300 ;
      y := 1000 ;
      with printer do
        Begin
          Begindoc;
          For i := 1 To 5 do
            Begin
              Canvas.textout(x,y,'texte à imprimer n° '+ IntToStr(i) );
              NewPage ;
            End ;
          Enddoc;
        End;
    end;
     
    procedure TF_Princ.Button3Click(Sender: TObject);
    Var
      x, y : Integer ;
      i : Integer ;
    begin
      x := 300 ;
      y := 1000 ;
      With printer do
        Begin
          For i := 1 To 3 do
            Begin
              BeginDoc ;
              canvas.textout(x,y,'texte à imprimer n° '+ IntToStr(i) );
              EndDoc ;
            End ;
        End;
    end;
    Le premier imprime toutes les pages dans le même fichier Pdf, le second créé autant de fichiers que de pages.

    A+
    Charly

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 954
    Par défaut
    bonjour,

    j'ai remédié au probléme on utilisant le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with printer do
    begin
    begindoc;
    canvas.textout(x,y,'fff' );
    enddoc;
    end;
    mais, l'imprimante est réinitialisé à chaque fois.

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 120
    Par défaut
    Yep !
    Citation Envoyé par chekkal Voir le message
    bonjour,

    j'ai remédié au problème en utilisant le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with printer do
    begin
    begindoc;
    canvas.textout(x,y,'fff' );
    enddoc;
    end;
    Elle est où, la boucle des 800 pages minimum dont il est question dans le post d'origine ?

    (En espérant que tu fais tes test vers du pdf, sinon bonjour le gaspillage de papier... À notre époque, ça la fout mal.)

  5. #5
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 506
    Par défaut
    Bonjour,
    pour ne pas réinitialiser l'imprimante il faut utiliser ma première solution (et non la seconde). Avec PDF on a un seul fichier avec plusieurs pages (800 pour toi)

    A+
    Charly

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 954
    Par défaut
    désolé j'ai oublié d'intégrer la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    with printer do
    begin
    begindoc;
                for i:=1 to 800 do 
                   canvas.textout(x,y,'fff' );
    enddoc;
    end;
    Mon but c'est pas de créer un fichier (pdf pour l'exple). J'ai des pré-imprimé et je voudrais imprimer sur des positions bien précise sur chaque feuille. le code ci-dessus marche mais la réinitialisation de l'imprimante prend à chaque fois 2 secondes en moyenne, alors pour 1000 feuilles

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 120
    Par défaut
    Yep !
    Citation Envoyé par Charly910 Voir le message
    Bonjour,
    pour ne pas réinitialiser l'imprimante il faut utiliser ma première solution (et non la seconde).
    Celle qui inclut le NewPage à chaque tour de boucle ?
    Déjà testé, mais
    Citation Envoyé par chekkal Voir le message
    là il imprime sur la première page mais pas sur les autres .
    Au fait, il n'imprime rien sur les autres (ie 799 pages sortent blanches) ou elles ne sont même pas avalées par la machine ?

    Si c'est "rien", peut-être qu'il n'y a rien à imprimer ? À tester dans un pdf.

    Sinon c'est un problème d'imprimante/de pilote d'imprimante et là, on ne pourra rien faire : à voir avec le fournisseur.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/08/2012, 16h58
  2. Impression sur imprimante USB à partir d'un logiciel DOS
    Par el_aaroubi dans le forum Périphériques
    Réponses: 4
    Dernier message: 28/03/2007, 18h16
  3. Forcer l'impression sur une imprimante
    Par Poussy-Puce dans le forum ASP
    Réponses: 1
    Dernier message: 21/11/2006, 00h27
  4. Procédure pour impression sur imprimante matricielle
    Par snakers13 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/10/2006, 17h55
  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