質問

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?

役に立ちましたか?

解決

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");
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top