Drukowanie wykresów

0

Witam wszystkich.

Obecnie próbuję zrobić program do rejetracji zmian temperatur i mam problem z wykresami, a właściwie to z ich drukowaniem.

Napisałem następujący kod

 
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            Pen myPen = new Pen(System.Drawing.Color.Black, 35);
            DateTime data = DateTime.Now;

            e.Graphics.DrawLine(myPen, 20, 32, 800, 32);
            e.Graphics.DrawString(label6.Text, label6.Font, Brushes.Gold, 35, 20);
            e.Graphics.DrawString(label7.Text, label7.Font, Brushes.Gold, 120, 20);
            e.Graphics.DrawString("Zestawienie poszczególnych charakterystyk z dnia " + data.ToLongDateString() + " o godzinie " + data.ToLongTimeString(), label17.Font, Brushes.Black, 35, 55);
            e.Graphics.PageUnit = GraphicsUnit.Inch;

        }

Zasada działania jest następująca.
Na górze kartki powstaje czarny pasek na którym jest napis, ponieżej informacja o godzinie i dniu w którym powstaje wydruk.
Od następnego miejsca chciałbym aby pojawił się wykres, który jest wyświetlany w programie.
Proszę o jakąś sugestie jak to zrobić.

0

Rysujesz wykres tak samo, jak piszesz stringi, np. e.Graphics.DrawLine (lub DrawLines dla zbioru punktów, czy nawet DrawBeziers, jeśli chcesz, żeby wykres był "zaokrąglony") lub e.Graphics.DrawImage (jeżeli wykres jest reprezentowany przez obrazek) itd.

0

Dzięki za pomoc, ale już znalazłem.
Jeśli komuś się przyda:

int n = Convert.ToInt32(label47.Text);

            for (int i = 0; i < n; i++)
            {
                chart3.Series[0].Points.AddXY(Convert.ToDouble(dataGridView1.Rows[i].Cells[0].Value), Convert.ToDouble(dataGridView1.Rows[i].Cells[21].Value));
            }
            System.Drawing.Font printFont = new System.Drawing.Font("Arial", 10);
            Rectangle myRec = new System.Drawing.Rectangle(10, 100, 800, 200);
            chart3.Printing.PrintPaint(e.Graphics, myRec);
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1