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

C++Builder Discussion :

Probl�me d'impression


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    6
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Par d�faut Probl�me d'impression
    Salut,

    J'essaye d'imprimer une image que je mets dans le Canvas d'une TPrinter.
    Voici un bout de code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
            Imprimante->BeginDoc();
            Imprimante->Canvas->Draw(0,0,Ecran->Picture->Graphic);
            Imprimante->EndDoc();
    Mais le probl�me, c'est que rien ne s'imprime. Pourtant la fen�tre de la liste d'attente de l'imprimante s'ouvre.

    Si quelqu'un peut m'aider:

  2. #2
    Invit�
    Invit�(e)
    Par d�faut Impression
    D�j�, il faut inclure :
    Ensuite, tu peux t'inspirer de ces bouts de code issus d'un de mes programmes...
    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
     
      TPrinter* pPrntr = Printer();
     
      // Préparation à l'impression
      nLargeurPage = pPrntr->PageWidth;
      nHauteurPage = pPrntr->PageHeight;
      pPrntr->Title = strcTitrePapier;
      pPrntr->Canvas->Font->Name = "Courier New";
      pPrntr->Canvas->Font->Color = clBlack;
      nHauteurCaractere = pPrntr->Canvas->TextHeight("hp");
      nMargeGauche = nLargeurPage / 15;
      nMargeHaute = nHauteurPage / 10;
      nNbLignesParPage = (nHauteurPage - (2 * nMargeHaute)) /  nHauteurCaractere;
      //---- Début
      pPrntr->BeginDoc();
     
      //---- Pour écrire
      nYEcriture = nMargeHaute + nNumLigne * nHauteurCaractere;
      pPrntr->Canvas->TextOut(nMargeGauche + nLevel * ncTailleIndentation,
                                     nYEcriture,
                                     strLigne);
     
      //--- Pour insérer un saut de page
      if (nNumLigne > nNbLignesParPage)
      {
            pPrntr->NewPage();
      }
     
      //---- Pour déclencher l'impression :
      pPrntr->EndDoc();
    Bon courage,

    A+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    6
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Par d�faut
    Merci Kaji pour tes infos. Mais dans le cas pr�sent, le probl�me vient du fait que je veux imprimer une image. Et je n'arrive pas � la copier sur le Canvas d'un TPrinter. J'ai aussi essayer avec CopyRect mais rien � faire.

  4. #4
    JEG
    JEG est d�connect�
    Membre chevronn�
    Avatar de JEG
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 211
    Par d�faut
    J'ai eu le m�me probleme que toi IngBen, que j'ai r�solut en affichant l'image dans une TForm cach�e et en appelant la m�thode Print() de cette form

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Par d�faut
    Utilise StretchDraw, �a fonctionne tr�s 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
    {
      TPrinter* Imprimante = Printer();
     
      Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
      AnsiString FileName = "MonFichier.bmp";
     
      pBitmap->LoadFromFile(FileName);
      pBitmap->Transparent = true;
      TRect r = Rect(400, 400, 10 * pBitmap->Width, 10 * pBitmap->Height); //Ici, il faudra calculer la taille de ton rectangle en fonction du rapport résolution écran / imprimante
     
      Imprimante->BeginDoc();
      Imprimante->Canvas->StretchDraw(r, pBitmap);
      Imprimante->EndDoc();
    }
    @+

    Fred

  6. #6
    JEG
    JEG est d�connect�
    Membre chevronn�
    Avatar de JEG
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 211
    Par d�faut
    Moi ce que j'avais constat� (j'utilisais stretchdraw et j'�tais sous C++ Builder 3 � l'�poque) c'est que sur certaines imprimantes (la plupart en fait) ca marchait tout le temps tres bien, et sur d'autres ca foirait de temps en temps, "al�atoirement", sans qu'on sache pourquoi... alors que TForm::Print() marche tout le temps. Allez savoir pourquoi...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    6
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Par d�faut
    En fait, si j'avais mieux lu l'aide, je n'aurais pas pos� la question. Il est bien sp�cifi� que Draw, StretchDraw... ne fonctionne pas tr�s bien. Donc je pr�f�re me d�brouiller autrement pour �tre sur que �a marche partout.
    Merci � tous pour votre aide.

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Par d�faut
    Va voir sur le site de Reisdorph (www.reisdorph.com), et t�l�charges les exemples de code de mars et avril 2001. Je penses que �a correspond exactement � ce que tu cherches.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me d'impression de caract�re (gras) sur matricielle
    Par Tiefolo Salia dans le forum Langage
    R�ponses: 1
    Dernier message: 01/09/2005, 23h36
  2. probl�me d'impression
    Par davedenice dans le forum AWT/Swing
    R�ponses: 6
    Dernier message: 28/07/2005, 16h57
  3. R�ponses: 2
    Dernier message: 17/05/2005, 13h33
  4. R�ponses: 16
    Dernier message: 17/03/2005, 13h54
  5. [Rave] probl�me d'impression
    Par romstarr dans le forum Rave
    R�ponses: 2
    Dernier message: 09/06/2004, 15h48

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