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 :

Impression d'un TChart (graphique)


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Par défaut Impression d'un TChart (graphique)
    Bien le bonjour à tous.

    J'expose mon problème :

    1) Je voudrais imprimer un TChart, cependant l'impression fonctionne mais celle-ci me sort une toute petite image...
    2) Est-il possible d'étirer l'image pour pouvoir tenir dans une feuille au format A4 ?
    3) Est-il possible de tourner l'image à 90° car print->Orientation = poLandscape ne fonctionne pas.

    Enfin voici le code de la fonction impression :

    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
     
    void __fastcall TFImprimer::ButtonImprimerClick(TObject *Sender)
    {
      PrintDialog1->Options.Clear();
     
      print->Title = "12.07.07";
      if (PrintDialog1->Execute())
      {
        // imprime les pages
        print->BeginDoc();
     
        if(CheckTemperature->Checked)
        {
          FConsulterRapport->GraphPression->PaintTo(print->Handle, 10, 10);
          print->NewPage();
        }
        if(CheckPression->Checked)
        {
          FConsulterRapport->GraphPression->PaintTo(print->Handle, 10, 10);
          print->NewPage();
        }
        if(CheckVide->Checked)
        {
          FConsulterRapport->GraphVide->PaintTo(print->Handle, 10, 10);
        }
        print->EndDoc();
      }
    }
    Merci de vos réponses ^_^

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    Ci dessous un exemple pour imprimer sur une page les quatres graphes présents sur une fiche:

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
      int h,w;
    	Screen->Cursor = crHourGlass; // <-- nice detail }
    	PrinterSetupDialog1->Execute();
    	try {
      	Printer()->BeginDoc();       // <-- start printer job
        try {
          // now print some text on Printer()->canvas
          Printer()->Canvas->Font->Name = "Arial";
          Printer()->Canvas->Font->Size = 10;             // <-- set the font size
          Printer()->Canvas->Font->Style.Clear();
    			Printer()->Canvas->TextOut(60,60,"NetWork Guardian");   // <-- print some text
     
          h = Printer()->PageHeight; // <-- get page height
          w = Printer()->PageWidth;  // <-- get page width
     
          // And now print the chart component
    			/*DBChart1->PrintPartial( Rect(
    				w / 5,          // <-- 20% left margin
    				h / 3 ,         // <-- 33% top margin
    				w - (w / 5),    // <-- 20% right margin
    				h - (h / 5)));  // <-- 20% bottom margin
    			*/
     
    			DBChart1->PrintPartial( Rect(
    				w/15 ,
    				h/5,
    				w-(w/15),
    				h/25));
    			DBChart2->PrintPartial( Rect(
    				w/15 ,
    				(h/5)*2,
    				w-(w/15),
    				h/5 + h/25));
    			DBChart3->PrintPartial( Rect(
    				w/15 ,
    				(h/5)*3,
    				w-(w/15),
    				2*(h/5) + (h/25)));
    			DBChart4->PrintPartial( Rect(
    				w/15 ,
    				(h/5)*4,
    				w-(w/15),
    				3*(h/5) + (h/25)));
     
     
          // print more text
          Printer()->Canvas->Font->Name = "Arial";
          Printer()->Canvas->Font->Size = 12;             // <-- set the font size
          Printer()->Canvas->Font->Style = TFontStyles() << fsItalic;
          Printer()->Canvas->TextOut(60,120,Now());   // <-- Date and time
     
    			Printer()->EndDoc(); // <-- end job and print !!
        }
        catch (...) {
          // just in case an error happens
          Printer()->Abort();
          Printer()->EndDoc();
          throw;       // <-- rethrow the exception !!!
        }
      }
      __finally {
        Screen->Cursor = crDefault; // <-- restore cursor
      }

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Par défaut
    Ok je vais tenter de m'en inspirer...

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Par défaut
    Pour l'impression cela fonctionne cependant je n'ai pas encore trouvé de solution à ma troisième question...
    En fait, il faut à la fois imprimer les graphes en orientation paysage et une page de texte en orientation portrait.

    C'est pour cela que je cherche encore quelle solution utilisé et comment la faire :

    --> Soit trouver une méthode pour différencier les deux sortes d'impression
    --> Soit tout imprimer en paysage en tournant le texte à 90° (texte dans un RichEdit => possiblilité de changement)
    --> Soit tout imprimer en portrait en tournant les graphes cette fois-ci.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    as tu essayé de réaliser deux impressions:
    la première en positionnant ton imprimante d'abord en paysage puis impression.
    la deuxième en la positionnant en portrait puis impression ??

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Par défaut
    En effet, il me le faut en un seul fichier c'est là le problème...
    Ou à ce moment y a-t-il un moyen pour empêcher quiconque d'imprimer entre ces deux impressions ?

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/07/2008, 22h55
  2. impression PDF d'un graphique : erreur 135
    Par jffaber dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 20/06/2008, 08h52
  3. impression ecran d'un graphique fait en c
    Par jr_maj dans le forum C
    Réponses: 6
    Dernier message: 02/09/2007, 19h45
  4. Affichage d'un TChart (graphique) en échelle logarithmique
    Par stillman dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/04/2007, 17h25
  5. [Print] Impression de plusieurs composants graphiques....
    Par lilou77 dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 02/01/2006, 10h01

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