Search code examples
c#.netprintingteechart

Print preview issue in Steema Teechart with graphics3d


I am using tchart with graphics 3d for real time chart plotting. whenever I try to call print preview for the chart, the preview page is just a blank page and the actual chart background becomes black. I tried different tricks and i found this printpreview works in normal canvas. but as soon as i write the line

Chart1.Graphics3D = new Graphics3DDirect2D(Chart1.Chart);                  

print preview does not work .

If I call export function, e.g. export to pdf functionality then the pdf file has exported chart in it and alternate route can be I can print the pdf. But I want to use print preview and give user a functionality to change margins and other things as per their need.

Link for the demo project is http://www.filedropper.com/sampleprojecttchartprint Link for the Video describing issue is http://tinypic.com/r/2ufg7f5/5 What am I doing wrong here?


Solution

  • There is a limitation with the wrapper TeeChart uses, a limitation documented here: http://bugs.teechart.net/show_bug.cgi?id=356

    As suggested, the workaround is to use the GDI+ canvas for image exportation, e.g.

    private void InitializeChart()
    {
      tChart1.Graphics3D = new Graphics3DDirect2D(tChart1.Chart);
      tChart1.Aspect.View3D = false;
      FastLine series = new FastLine(tChart1.Chart);
      series.FillSampleValues(1000);
    
    }
    
    TChart tChart2;
    
    private void button1_Click(object sender, EventArgs e)
    {
      if(tChart2 == null) tChart2 = new TChart();
    
      MemoryStream ms = new MemoryStream();
      tChart1.Export.Template.Save(ms);
      ms.Position = 0;
      tChart2.Import.Template.Load(ms);
    
      tChart2.Export.Image.PNG.Width = tChart1.Width;
      tChart2.Export.Image.PNG.Height = tChart1.Height;
      tChart2.Export.Image.PNG.Save(@"C:\tmp\direct2d.png");
    }